diff --git a/README.md b/README.md
index fd0b352e..69ac2a32 100644
--- a/README.md
+++ b/README.md
@@ -30,6 +30,7 @@
- [**Build Process**](https://github.com/vladmandic/human/wiki/Build-Process)
- [**Performance Notes**](https://github.com/vladmandic/human/wiki/Performance)
- [**Performance Profiling**](https://github.com/vladmandic/human/wiki/Profiling)
+- [**Platform Support**](https://github.com/vladmandic/human/wiki/Platforms)
- [**List of Models & Credits**](https://github.com/vladmandic/human/wiki/Models)
diff --git a/demo/menu.js b/demo/menu.js
index 6d44013e..be9336b3 100644
--- a/demo/menu.js
+++ b/demo/menu.js
@@ -19,7 +19,7 @@ function createCSS() {
if (CSScreated) return;
const css = `
:root { --rounded: 0.2rem; }
- .menu { position: absolute; top: 0rem; right: 0; width: fit-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;
+ .menu { position: absolute; top: 0rem; right: 0; width: max-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;
box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; }
.menu:hover { box-shadow: 0 0 8px ${theme.hover}; }
diff --git a/dist/demo-browser-index.js b/dist/demo-browser-index.js
index 45e62361..19759a51 100644
--- a/dist/demo-browser-index.js
+++ b/dist/demo-browser-index.js
@@ -3966,9 +3966,9 @@ return a / b;`,DIV_PACKED=`
}
`}}const rotateWithOffsetConfig2={kernelName:RotateWithOffset,backendName:"webgl",kernelFunc:({inputs,attrs,backend:backend3})=>{const{image:image3}=inputs,{radians,fillValue,center}=attrs,webglBackend=backend3,program=new RotateProgram(image3.shape,radians,fillValue,center),output=webglBackend.runWebGLProgram(program,[image3],image3.dtype);return output}},SIN=CHECK_NAN_SNIPPET_UNARY+`
return sin(x);
-`,sin6=unaryKernelFunc2(SIN),sinConfig2={kernelName:Sin,backendName:"webgl",kernelFunc:sin6},SQUARE="return x * x;",square25=unaryKernelFunc2(SQUARE),squareConfig2={kernelName:Square,backendName:"webgl",kernelFunc:square25},SQUARED_DIFFERENCE="return (a - b) * (a - b);",squaredDifference3=binaryKernelFunc2({opSnippet:SQUARED_DIFFERENCE,packedOpSnippet:SQUARED_DIFFERENCE}),squaredDifferenceConfig2={kernelName:SquaredDifference,backendName:"webgl",kernelFunc:squaredDifference3},SUB="return a - b;",subKernelFunc=binaryKernelFunc2({opSnippet:SUB,packedOpSnippet:SUB,supportsComplex:!0,cpuKernelImpl:subImplCPU}),subConfig2={kernelName:Sub,backendName:"webgl",kernelFunc:subKernelFunc},TAN="return tan(x);",tan5=unaryKernelFunc2(TAN),tanConfig2={kernelName:Tan,backendName:"webgl",kernelFunc:tan5},transposeConfig2={kernelName:Transpose,backendName:"webgl",kernelFunc:({inputs,attrs,backend:backend3})=>{const{x}=inputs,{perm}=attrs,webglBackend=backend3,xRank=x.shape.length,newShape=new Array(xRank);for(let i=0;iwasmFunc8(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;const aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:kernelFunc3}}const supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast);let wasmFunc;function setupFunc(backend3){wasmFunc=backend3.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){const{inputs,backend:backend3}=args,out=backend3.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;const inputIds=inputs.map(x=>backend3.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}const addNConfig={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity4(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),inVals=backend3.typedArrayFromHeap(x),outVals=backend3.typedArrayFromHeap(out);return outVals.set(inVals),out}const identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity4};let wasmTranspose;function setup2(backend3){wasmTranspose=backend3.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose19(args){const{inputs,backend:backend3,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm);let permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}const transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose19,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend3){const xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape);let axes=originalAxes;const permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank);let xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){const newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}const reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape91};let wasmBatchMatMul;function setup5(backend3){wasmBatchMatMul=backend3.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul2(args){const{inputs,backend:backend3,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");const aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);const outShapeOuterDims=batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2),outShape=outShapeOuterDims.concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);const a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape91({inputs:{x:a},backend:backend3,attrs:{shape:a3dShape}}),b3d=reshape91({inputs:{x:b},backend:backend3,attrs:{shape:b3dShape}}),a3dId=backend3.dataIdMap.get(a3d.dataId).id,b3dId=backend3.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend3.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend3.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}const batchMatMulConfig2={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul2};function cast51(args){const{inputs:{x},attrs:{dtype},backend:backend3}=args,out=backend3.makeOutput(x.shape,dtype),inVals=backend3.typedArrayFromHeap(x),outVals=backend3.typedArrayFromHeap(out);return outVals.set(inVals),out}const castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast51};let wasmClip;function setup6(backend3){wasmClip=backend3.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(x.shape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}const clipByValueConfig={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat19(args){const{inputs,backend:backend3}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),out=backend3.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;const $inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return $inputs[0];const shapes=$inputs.map(t=>t.shape);backend_util_exports.assertParamsConsistent(shapes,axis);const batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis));let sumInnerDims=0;const innerDims=$inputs.map(input2=>{const innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend3.typedArrayFromHeap(input2)),outVals=backend3.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);const permutation=backend_util_exports.getAxesPermutation([axis],xRank);let permutedX=x;permutation!==null&&(permutedX=transpose19({inputs:{x},attrs:{perm:permutation},backend:backend3}));const permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);const permutedOut=backend3.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend3.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend3.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse12?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){const undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose19({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend3}),backend3.disposeData(permutedX.dataId),backend3.disposeData(permutedOut.dataId)}return out}const cumsumConfig={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum6};let wasmDepthToSpace;function setup11(backend3){wasmDepthToSpace=backend3.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace2(args){const{backend:backend3,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);const batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend3.makeOutput(outputShape,"float32"),xData=backend3.dataIdMap.get(x.dataId),xId=xData.id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend3.dataIdMap.get(out.dataId).id,channelsLast=dataFormat==="NHWC"?1:0;return wasmDepthToSpace(xId,blockSize,channelsLast,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}const depthToSpaceConfig={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace2};let wasmDepthwiseConv2d;function setup12(backend3){wasmDepthwiseConv2d=backend3.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d5(args){const{inputs,attrs,backend:backend3}=args,{x,filter}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad11,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad11,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}const depthwiseConv2dNativeConfig2={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d5},supportsFullBroadcast2=!0,divConfig3=createBinaryKernelConfig(Div,supportsFullBroadcast2),supportsFullBroadcast3=!1,equalConfig=createBinaryKernelConfig(Equal,supportsFullBroadcast3,"bool"),expConfig2=createUnaryKernelConfig(Exp);function fill6(args){const{attrs:{shape,value,dtype},backend:backend3}=args,out=backend3.makeOutput(shape,dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(value),out}const fillConfig2={kernelName:Fill,backendName:"wasm",kernelFunc:fill6};let wasmFlipLeftRight;function setup13(backend3){wasmFlipLeftRight=backend3.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){const{inputs,backend:backend3}=args,{image:image3}=inputs,out=backend3.makeOutput(image3.shape,image3.dtype),imageId=backend3.dataIdMap.get(image3.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}const flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},supportsFullBroadcast4=!1,floorDivConfig=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast4);let wasmBatchNorm;function setup14(backend3){wasmBatchNorm=backend3.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){const{backend:backend3,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean7,variance,offset,scale:scale2}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,meanId=backend3.dataIdMap.get(mean7.dataId).id,varianceId=backend3.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend3.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend3.dataIdMap.get(scale2.dataId).id:0,out=backend3.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;const outId=backend3.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}const fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm};let wasmFusedConv2d;function setup15(backend3){wasmFusedConv2d=backend3.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d(args){const{inputs,attrs,backend:backend3}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad11,dilations,dataFormat,dimRoundingMode,activation:activation2}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad11,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);const xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels;let biasId=0;if(bias!=null){const biasData=backend3.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}const filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend3.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,outId),out}const fusedConv2DConfig2={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d};let wasmFusedDepthwiseConv2d;function setup16(backend3){wasmFusedDepthwiseConv2d=backend3.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){const{inputs,attrs,backend:backend3}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad11,dilations,dataFormat,dimRoundingMode,activation:activation2}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad11,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);const xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels;let biasId=0;if(bias!=null){const biasData=backend3.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}const filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend3.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,outId),out}const fusedDepthwiseConv2DConfig2={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d};let wasmGatherNd;function setup17(backend3){wasmGatherNd=backend3.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd(args){const{backend:backend3,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend3.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;const indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xData=backend3.dataIdMap.get(params.dataId),xId=xData.id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}const gatherNdConfig={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd};let wasmGather;function setup18(backend3){wasmGather=backend3.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV2(args){const{backend:backend3,inputs,attrs}=args,{x,indices}=inputs,{axis}=attrs,newShape=x.shape.slice();newShape[axis]=util_exports.sizeFromShape(indices.shape);const stridesSize=x.shape.length-1,out=backend3.makeOutput(newShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;const xData=backend3.dataIdMap.get(x.dataId),xId=xData.id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,outId=backend3.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(newShape)).buffer);wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,axis,outStridesBytes,outId);const parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis);return out.shape=shapeInfo.outputShape,out}const gatherV2Config={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV2},supportsFullBroadcast5=!1,greaterConfig=createBinaryKernelConfig(Greater,supportsFullBroadcast5,"bool"),supportsFullBroadcast6=!1,greaterEqualConfig=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessConfig=createBinaryKernelConfig(Less,supportsFullBroadcast7,"bool"),supportsFullBroadcast8=!1,lessEqualConfig=createBinaryKernelConfig(LessEqual,supportsFullBroadcast8,"bool"),logConfig2=createUnaryKernelConfig(Log),supportsFullBroadcast9=!1,logicalAndConfig=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast9,"bool");let wasmMax;function setup19(backend3){wasmMax=backend3.wasm.cwrap(Max,null,["number, number, number"])}function max9(args){const{backend:backend3,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}const inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max9},supportsFullBroadcast10=!1,maximumConfig=createBinaryKernelConfig(Maximum,supportsFullBroadcast10);let wasmMaxPool;function setup20(backend3){wasmMaxPool=backend3.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){const{inputs,attrs,backend:backend3}=args,x=inputs.x,xId=backend3.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad11,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad11,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}const maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4};let wasmMin;function setup21(backend3){wasmMin=backend3.wasm.cwrap(Min,null,["number, number, number"])}function min7(args){const{backend:backend3,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}const inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const minConfig={kernelName:Min,backendName:"wasm",setupFunc:setup21,kernelFunc:min7},supportsFullBroadcast11=!1,minimumConfig=createBinaryKernelConfig(Minimum,supportsFullBroadcast11),supportsFullBroadcast12=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast12),negateConfig=createUnaryKernelConfig(Negate);function parseResultStruct(backend3,resOffset){const result=new Int32Array(backend3.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend3.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}let wasmFunc3;function setup22(backend3){wasmFunc3=backend3.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc3(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pSelectedScores),backend3.wasm._free(pValidOutputs);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices);return selectedIndicesTensor}const nonMaxSuppressionV3Config2={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup22,kernelFunc};let wasmFunc4;function setup23(backend3){wasmFunc4=backend3.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV4(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pSelectedScores);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend3.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}const nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup23,kernelFunc:nonMaxSuppressionV4};let wasmFunc5;function setup24(backend3){wasmFunc5=backend3.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pValidOutputs);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend3.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}const nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup24,kernelFunc:kernelFunc2},supportsFullBroadcast13=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast13,"bool");let wasmOneHot;function setup25(backend3){wasmOneHot=backend3.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot2(args){const{inputs,backend:backend3,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend3.makeOutput([...indices.shape,depth],"int32"),outId=backend3.dataIdMap.get(out.dataId).id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}const oneHotConfig={kernelName:OneHot,backendName:"wasm",setupFunc:setup25,kernelFunc:oneHot2};function onesLike2(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(1),out}const onesLikeConfig={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike2};let wasmPadV2;function setup26(backend3){wasmPadV2=backend3.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad10(args){const{inputs:{x},backend:backend3,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(outShape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}const padV2Config2={kernelName:PadV2,backendName:"wasm",kernelFunc:pad10,setupFunc:setup26},supportsFullBroadcast14=!1,powConfig=createBinaryKernelConfig(Pow,supportsFullBroadcast14);let wasmPrelu;function setup27(backend3){wasmPrelu=backend3.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu8(args){const{inputs,backend:backend3}=args,{x,alpha}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,weightsId=backend3.dataIdMap.get(alpha.dataId).id,out=backend3.makeOutput(x.shape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}const preluConfig2={kernelName:Prelu,backendName:"wasm",setupFunc:setup27,kernelFunc:prelu8},reluConfig2=createUnaryKernelConfig(Relu),relu6Config2=createUnaryKernelConfig(Relu6);let wasmResizeBilinear;function setup28(backend3){wasmResizeBilinear=backend3.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number"])}function resizeBilinear2(args){const{backend:backend3,inputs,attrs}=args,{images}=inputs,{alignCorners,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels];let xData=backend3.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast51({backend:backend3,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend3.dataIdMap.get(castedData.dataId));const xId=xData.id,out=backend3.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;const outId=backend3.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,outId),castedData!=null&&backend3.disposeData(castedData.dataId),out}const resizeBilinearConfig={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup28,kernelFunc:resizeBilinear2};let wasmReverse;function setup29(backend3){wasmReverse=backend3.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse11(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity4({inputs:{x},backend:backend3});const out=backend3.makeOutput(x.shape,x.dtype),xId=backend3.dataIdMap.get(x.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape91({inputs:{x:out},attrs:{shape:x.shape},backend:backend3})}const reverseConfig={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse11,setupFunc:setup29};let wasmRotate;function setup30(backend3){wasmRotate=backend3.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){const{inputs,backend:backend3,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend3.makeOutput(image3.shape,image3.dtype),imageId=backend3.dataIdMap.get(image3.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}const rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup30},rsqrtConfig2=createUnaryKernelConfig(Rsqrt);let wasmScatterNd;function setup31(backend3){wasmScatterNd=backend3.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd(args){const{backend:backend3,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend3.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;const{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,updatesData=backend3.dataIdMap.get(updates.dataId),updatesId=updatesData.id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}const scatterNdConfig={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup31,kernelFunc:scatterNd};let wasmSelect;function setup32(backend3){wasmSelect=backend3.wasm.cwrap(SelectV2,null,["number","number","number","number","number"])}function select(args){const{inputs,backend:backend3}=args,{condition,t,e}=inputs,conditionId=backend3.dataIdMap.get(condition.dataId).id,tId=backend3.dataIdMap.get(t.dataId).id,eId=backend3.dataIdMap.get(e.dataId).id,out=backend3.makeOutput(t.shape,t.dtype),outId=backend3.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}const selectV2Config={kernelName:SelectV2,backendName:"wasm",kernelFunc:select,setupFunc:setup32};let wasmFunc6;function setup33(backend3){wasmFunc6=backend3.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid8(args){const{backend:backend3,inputs:{x}}=args,xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(x.shape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc6(xId,outId),out}const sigmoidConfig2={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup33,kernelFunc:sigmoid8},sinConfig3=createUnaryKernelConfig(Sin);function slice20(args){const{inputs:{x},attrs:{begin,size},backend:backend3}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend3.typedArrayFromHeap(x),out=backend3.makeOutput(size_,x.dtype),outVals=backend3.typedArrayFromHeap(out),xStrides=util_exports.computeStrides(x.shape);if(isContinous){const flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return outVals.set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}const rank=x.shape.length;return rank===2?slice2d3(xVals,xStrides[0],outVals,begin_,size_):rank===3?slice3d3(xVals,xStrides[0],xStrides[1],outVals,begin_,size_):rank===4?slice4d3(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_):genericSliceSlow(xVals,x,outVals,begin_,size_),out}function slice2d3(xVals,xStride,outVals,begin,size){let outOffset=0;const beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;iidx+begin[j]);outVals[i]=xBuf.get(...xLoc)}}const sliceConfig2={kernelName:Slice,backendName:"wasm",kernelFunc:slice20};let wasmFunc7;function setup34(backend3){wasmFunc7=backend3.wasm.cwrap(Softmax,null,["number","number","number","number"])}function softmax5(args){const{backend:backend3,inputs:{logits},attrs:{dim}}=args,xId=backend3.dataIdMap.get(logits.dataId).id,out=backend3.makeOutput(logits.shape,logits.dtype),outId=backend3.dataIdMap.get(out.dataId).id,channels=logits.shape[dim],batch=util_exports.sizeFromShape(logits.shape)/channels;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId,channels,batch),out}const softmaxConfig={kernelName:Softmax,backendName:"wasm",setupFunc:setup34,kernelFunc:softmax5};function split12(args){const{inputs,attrs,backend:backend3}=args,{x}=inputs,{numOrSizeSplits,axis}=attrs,$axis=util_exports.parseAxisParam(axis,x.shape)[0],splitSizes=backend_util_exports.prepareSplitSize(x,numOrSizeSplits,axis),begin=new Array(x.shape.length).fill(0),size=x.shape.slice();return splitSizes.map(s=>{const xSliceSize=[...size];xSliceSize[$axis]=s;const xSlice=slice20({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend3});return begin[$axis]+=s,xSlice})}const splitVConfig={kernelName:SplitV,backendName:"wasm",kernelFunc:split12},sqrtConfig2=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15);let wasmStridedSlice;function setup35(backend3){wasmStridedSlice=backend3.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice2(args){const{backend:backend3,inputs,attrs}=args,{x}=inputs;let{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));const{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});const xReshaped=reshape91({inputs:{x},attrs:{shape:newShape},backend:backend3}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;const shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});const size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1),nonStrided=strides.every(v=>v===1);if(nonStrided){const xSliced=slice20({inputs:{x},attrs:{begin,size},backend:backend3});return reshape91({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend3})}const out=backend3.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){const xId=backend3.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend3.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape91({inputs:{x:out},attrs:{shape:outShape},backend:backend3})}const stridedSliceConfig={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup35,kernelFunc:stridedSlice2},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16);let wasmSum;function setup36(backend3){wasmSum=backend3.wasm.cwrap(Sum,null,["number, number, number"])}function sum28(args){const{backend:backend3,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);let reductionAxes=axes;if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const sumConfig={kernelName:Sum,backendName:"wasm",setupFunc:setup36,kernelFunc:sum28},tanhConfig2=createUnaryKernelConfig(Tanh);let wasmTile;function setup37(backend3){wasmTile=backend3.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile11(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i({dataId,dtype,shape:outShape}))}const unpackConfig={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack};function zerosLike2(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(0),out}const zerosLikeConfig={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike2},kernelConfigs3=[absConfig2,addConfig3,addNConfig,argMaxConfig,avgPoolConfig3,batchMatMulConfig2,castConfig3,clipByValueConfig,concatConfig3,conv2DConfig2,conv2DBackpropInputConfig2,cosConfig3,cropAndResizeConfig,cumsumConfig,depthToSpaceConfig,depthwiseConv2dNativeConfig2,divConfig3,equalConfig,expConfig2,fillConfig2,flipLeftRightConfig3,floorDivConfig,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig,gatherV2Config,greaterConfig,greaterEqualConfig,identityConfig3,lessConfig,lessEqualConfig,logConfig2,logicalAndConfig,maxConfig3,maximumConfig,maxPoolConfig3,minConfig,minimumConfig,multiplyConfig3,negateConfig,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig,onesLikeConfig,padV2Config2,powConfig,preluConfig2,reluConfig2,relu6Config2,reshapeConfig3,resizeBilinearConfig,reverseConfig,rotateWithOffsetConfig3,rsqrtConfig2,scatterNdConfig,selectV2Config,sigmoidConfig2,sinConfig3,sliceConfig2,softmaxConfig,splitVConfig,sqrtConfig2,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig,subConfig3,sumConfig,tanhConfig2,tileConfig,transposeConfig3,unpackConfig,zerosLikeConfig];for(const kernelConfig of kernelConfigs3)registerKernel(kernelConfig);const ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return 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(e){return!1}});const tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),WASM_PRIORITY=2;class BackendWasm extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine15())}write(values,shape,dtype){const dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){const start=util_exports.now();f();const kernelMs=util_exports.now()-start;return{kernelMs}}move(dataId,values,shape,dtype){const id=this.dataIdNextNumber++;if(dtype==="string"){const stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}const size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){const{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;const bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){const data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};const id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});const size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){const buffer11=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer11,memoryOffset,size);case"int32":return new Int32Array(buffer11,memoryOffset,size);case"bool":return new Uint8Array(buffer11,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}}registerBackend("wasm",async()=>{const{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){const[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{const factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){const response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var _scriptDir = undefined; var WasmBackendModuleThreadedSimd = "+tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=tfjs_backend_wasm.default(factoryConfig);const voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{if(initialized)return;if(initAborted)return;initAborted=!0;const rejectMsg="Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers";reject({message:rejectMsg})}})}function typedArrayFromBuffer(buffer11,dtype){switch(dtype){case"float32":return new Float32Array(buffer11);case"int32":return new Int32Array(buffer11);case"bool":return new Uint8Array(buffer11);default:throw new Error(`Unknown dtype ${dtype}`)}}const wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"];let wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;const missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}const version17="2.7.0",facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){const h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){const startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>{const scaledCoord=[coord[0]*factor[0],coord[1]*factor[1]];return scaledCoord});return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){const center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){const centers=getBoxCenter(box),size=getBoxSize(box),maxEdge=Math.max(...size),halfSize=maxEdge/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function shiftBox(box,shiftFactor){const boxSize=[box.endPoint[0]-box.startPoint[0],box.endPoint[1]-box.startPoint[1]],shiftVector=[boxSize[0]*shiftFactor[0],boxSize[1]*shiftFactor[1]],startPoint=[box.startPoint[0]+shiftVector[0],box.startPoint[1]+shiftVector[1]],endPoint=[box.endPoint[0]+shiftVector[0],box.endPoint[1]+shiftVector[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){const radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}const buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot2(v1,v2){let product=0;for(let i=0;itypeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){const isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{const pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}class Human{constructor(userConfig2={}){this.tf=tfjs_esm_exports,this.version=version3,this.config=mergeDeep(config_default,userConfig2),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}log(...msg){msg&&this.config.console&&console.log("Human:",...msg)}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;const current=engine15().state.numTensors,previous=this.numTensors;this.numTensors=current;const leaked=current-previous;leaked!==0&&this.log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig2){this.state="load";const timeStamp=now2();userConfig2&&(this.config=mergeDeep(this.config,userConfig2)),this.firstRun&&(this.log(`version: ${this.version} TensorFlow/JS version: ${version}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(this.log("configuration:",this.config),this.log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)));const current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){const timeStamp=now2();if(this.state="backend",this.log("setting backend:",this.config.backend),this.config.backend==="wasm"){this.log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath);const simd=await env().getAsync("WASM_HAS_SIMD_SUPPORT");simd||this.log("warning: wasm simd support is not enabled")}if(await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(this.log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);const gl=await backend2().getGPGPUContext().gl;this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){let timeStamp,ageRes,genderRes,emotionRes,embeddingRes;const faceRes=[];this.state="run:face",timeStamp=now2();const faces=await this.models.facemesh.estimateFaces(input2,this.config);this.perf.face=Math.trunc(now2()-timeStamp);for(const face2 of faces){if(this.analyze("Get Face"),!face2.image||face2.image.isDisposedInternal){this.log("Face object is disposed:",face2.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face2.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face2.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face2.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face2.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face2.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face2.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face2.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face2.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face2.image.dispose();const irisSize=face2.annotations.leftEyeIris&&face2.annotations.rightEyeIris?11.7*Math.max(Math.abs(face2.annotations.leftEyeIris[3][0]-face2.annotations.leftEyeIris[1][0]),Math.abs(face2.annotations.rightEyeIris[4][1]-face2.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face2.confidence,box:face2.box,mesh:face2.mesh,annotations:face2.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig2={}){this.state="image",this.config=mergeDeep(this.config,userConfig2);const process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig2={}){return new Promise(async resolve=>{this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig2),this.state="check";const error=this.sanity(input2);error&&(this.log(error,input2),resolve({error}));let poseRes,handRes,faceRes;const timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine15().startScope(),this.analyze("Start Scope:"),timeStamp=now2();const process3=image2.process(input2,this.config);if(!process3||!process3.tensor){this.log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?this.models.posenet.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await this.models.posenet.estimatePoses(process3.tensor,this.config):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?this.models.handpose.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await this.models.handpose.estimateHands(process3.tensor,this.config):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.config.async&&([faceRes,poseRes,handRes]=await Promise.all([faceRes,poseRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine15().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes={face:gesture.face(faceRes),body:gesture.body(poseRes),hand:gesture.hand(handRes)},this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig2,sample){sample||(sample=new ImageData(255,255));const warmup=await this.detect(sample,userConfig2);return this.log("warmed up"),warmup}}async function drawGesture(result,canvas,ui2){if(!result)return;const ctx=canvas.getContext("2d");ctx.font=ui2.baseFont,ctx.fillStyle=ui2.baseLabel;let i=1;for(const[key,val]of Object.entries(result))if(val.length>0){const label=`${key}: ${val.join(", ")}`;ctx.fillStyle="black",ctx.fillText(label,8,2+i*ui2.baseLineHeight),ctx.fillStyle=ui2.baseLabel,ctx.fillText(label,6,0+i*ui2.baseLineHeight),i+=1}}async function drawFace(result,canvas,ui2,triangulation){if(!result)return;const ctx=canvas.getContext("2d");for(const face of result){ctx.font=ui2.baseFont,ctx.strokeStyle=ui2.baseColor,ctx.fillStyle=ui2.baseColor,ctx.lineWidth=ui2.baseLineWidth,ctx.beginPath(),ui2.drawBoxes&&ctx.rect(face.box[0],face.box[1],face.box[2],face.box[3]);const labels=[];if(face.genderConfidence&&labels.push(`${Math.trunc(100*face.genderConfidence)}% ${face.gender||""}`),face.age&&labels.push(`age: ${face.age||""}`),face.iris&&labels.push(`iris: ${face.iris}`),face.emotion&&face.emotion.length>0){const emotion2=face.emotion.map(a=>`${Math.trunc(100*a.score)}% ${a.emotion}`);labels.push(emotion2.join(" "))}ctx.fillStyle=ui2.baseLabel;for(let i=0;iface.mesh[index]),path=new Path2D;path.moveTo(points[0][0],points[0][1]);for(const point of points)path.lineTo(point[0],point[1]);path.closePath(),ctx.strokeStyle=ui2.useDepth?`rgba(${127.5+2*points[0][2]}, ${127.5-2*points[0][2]}, 255, 0.3)`:ui2.baseColor,ctx.stroke(path),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?`rgba(${127.5+2*points[0][2]}, ${127.5-2*points[0][2]}, 255, 0.3)`:ui2.baseColor,ctx.fill(path))}if(face.annotations&&face.annotations.leftEyeIris){ctx.strokeStyle=ui2.useDepth?"rgba(255, 200, 255, 0.3)":ui2.baseColor,ctx.beginPath();const sizeX=Math.abs(face.annotations.leftEyeIris[3][0]-face.annotations.leftEyeIris[1][0])/2,sizeY=Math.abs(face.annotations.leftEyeIris[4][1]-face.annotations.leftEyeIris[2][1])/2;ctx.ellipse(face.annotations.leftEyeIris[0][0],face.annotations.leftEyeIris[0][1],sizeX,sizeY,0,0,2*Math.PI),ctx.stroke(),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?"rgba(255, 255, 200, 0.3)":ui2.baseColor,ctx.fill())}if(face.annotations&&face.annotations.rightEyeIris){ctx.strokeStyle=ui2.useDepth?"rgba(255, 200, 255, 0.3)":ui2.baseColor,ctx.beginPath();const sizeX=Math.abs(face.annotations.rightEyeIris[3][0]-face.annotations.rightEyeIris[1][0])/2,sizeY=Math.abs(face.annotations.rightEyeIris[4][1]-face.annotations.rightEyeIris[2][1])/2;ctx.ellipse(face.annotations.rightEyeIris[0][0],face.annotations.rightEyeIris[0][1],sizeX,sizeY,0,0,2*Math.PI),ctx.stroke(),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?"rgba(255, 255, 200, 0.3)":ui2.baseColor,ctx.fill())}}}}}const lastDrawnPose=[];async function drawBody(result,canvas,ui2){if(!result)return;const ctx=canvas.getContext("2d");ctx.lineJoin="round";for(const i in result){if(!lastDrawnPose[i]&&ui2.buffered&&(lastDrawnPose[i]={...result[i]}),ctx.fillStyle=ui2.baseColor,ctx.strokeStyle=ui2.baseColor,ctx.font=ui2.baseFont,ctx.lineWidth=ui2.baseLineWidth,ui2.drawPoints)for(const pt in result[i].keypoints)ctx.beginPath(),ui2.buffered?(lastDrawnPose[i].keypoints[pt].position.x=(lastDrawnPose[i].keypoints[pt].position.x+result[i].keypoints[pt].position.x)/2,lastDrawnPose[i].keypoints[pt].position.y=(lastDrawnPose[i].keypoints[pt].position.y+result[i].keypoints[pt].position.y)/2,ctx.arc(lastDrawnPose[i].keypoints[pt].position.x,lastDrawnPose[i].keypoints[pt].position.y,2,0,2*Math.PI)):ctx.arc(result[i].keypoints[pt].position.x,result[i].keypoints[pt].position.y,2,0,2*Math.PI),ctx.fill();if(ui2.drawPolygons){const path=new Path2D;let part;part=result[i].keypoints.find(a=>a.part==="leftShoulder"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightShoulder"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightHip"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftHip"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftShoulder"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftHip"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftKnee"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftAnkle"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightHip"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightKnee"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightAnkle"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightShoulder"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftShoulder"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftElbow"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftWrist"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftShoulder"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightShoulder"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightElbow"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightWrist"),path.lineTo(part.position.x,part.position.y),ctx.stroke(path)}}}async function drawHand(result,canvas,ui2){if(!result)return;const ctx=canvas.getContext("2d");ctx.lineJoin="round";for(const hand of result){if(ctx.font=ui2.baseFont,ctx.lineWidth=ui2.baseLineWidth,ui2.drawBoxes&&(ctx.lineWidth=ui2.baseLineWidth,ctx.beginPath(),ctx.strokeStyle=ui2.baseColor,ctx.fillStyle=ui2.baseColor,ctx.rect(hand.box[0],hand.box[1],hand.box[2],hand.box[3]),ctx.fillStyle="black",ctx.fillText("hand",hand.box[0]+3,1+hand.box[1]+ui2.baseLineHeight,hand.box[2]),ctx.fillStyle=ui2.baseLabel,ctx.fillText("hand",hand.box[0]+2,0+hand.box[1]+ui2.baseLineHeight,hand.box[2]),ctx.stroke()),ui2.drawPoints&&(hand.landmarks&&hand.landmarks.length>0))for(const point of hand.landmarks)ctx.fillStyle=ui2.useDepth?`rgba(${127.5+2*point[2]}, ${127.5-2*point[2]}, 255, 0.5)`:ui2.baseColor,ctx.beginPath(),ctx.arc(point[0],point[1],2,0,2*Math.PI),ctx.fill();if(ui2.drawPolygons){const addPart=part=>{if(!part)return;for(let i=0;i0?i-1:0][0],part[i>0?i-1:0][1]),ctx.lineTo(part[i][0],part[i][1]),ctx.stroke()};addPart(hand.annotations.indexFinger),addPart(hand.annotations.middleFinger),addPart(hand.annotations.ringFinger),addPart(hand.annotations.pinky),addPart(hand.annotations.thumb)}}}var draw_default={face:drawFace,body:drawBody,hand:drawHand,gesture:drawGesture};let instance=0,CSScreated=!1,theme={background:"darkslategray",hover:"lightgray",itemBackground:"black",itemColor:"white",buttonBackground:"lightblue",buttonHover:"lightgreen",checkboxOn:"lightgreen",checkboxOff:"lightcoral",rangeBackground:"lightblue",rangeLabel:"white",chartColor:"lightblue"};function createCSS(){if(CSScreated)return;const css=`
+`,sin6=unaryKernelFunc2(SIN),sinConfig2={kernelName:Sin,backendName:"webgl",kernelFunc:sin6},SQUARE="return x * x;",square25=unaryKernelFunc2(SQUARE),squareConfig2={kernelName:Square,backendName:"webgl",kernelFunc:square25},SQUARED_DIFFERENCE="return (a - b) * (a - b);",squaredDifference3=binaryKernelFunc2({opSnippet:SQUARED_DIFFERENCE,packedOpSnippet:SQUARED_DIFFERENCE}),squaredDifferenceConfig2={kernelName:SquaredDifference,backendName:"webgl",kernelFunc:squaredDifference3},SUB="return a - b;",subKernelFunc=binaryKernelFunc2({opSnippet:SUB,packedOpSnippet:SUB,supportsComplex:!0,cpuKernelImpl:subImplCPU}),subConfig2={kernelName:Sub,backendName:"webgl",kernelFunc:subKernelFunc},TAN="return tan(x);",tan5=unaryKernelFunc2(TAN),tanConfig2={kernelName:Tan,backendName:"webgl",kernelFunc:tan5},transposeConfig2={kernelName:Transpose,backendName:"webgl",kernelFunc:({inputs,attrs,backend:backend3})=>{const{x}=inputs,{perm}=attrs,webglBackend=backend3,xRank=x.shape.length,newShape=new Array(xRank);for(let i=0;iwasmFunc8(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;const aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:kernelFunc3}}const supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast);let wasmFunc;function setupFunc(backend3){wasmFunc=backend3.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){const{inputs,backend:backend3}=args,out=backend3.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;const inputIds=inputs.map(x=>backend3.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}const addNConfig={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity4(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),inVals=backend3.typedArrayFromHeap(x),outVals=backend3.typedArrayFromHeap(out);return outVals.set(inVals),out}const identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity4};let wasmTranspose;function setup2(backend3){wasmTranspose=backend3.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose19(args){const{inputs,backend:backend3,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm);let permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}const transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose19,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend3){const xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape);let axes=originalAxes;const permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank);let xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){const newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}const reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape91};let wasmBatchMatMul;function setup5(backend3){wasmBatchMatMul=backend3.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul2(args){const{inputs,backend:backend3,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");const aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);const outShapeOuterDims=batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2),outShape=outShapeOuterDims.concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);const a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape91({inputs:{x:a},backend:backend3,attrs:{shape:a3dShape}}),b3d=reshape91({inputs:{x:b},backend:backend3,attrs:{shape:b3dShape}}),a3dId=backend3.dataIdMap.get(a3d.dataId).id,b3dId=backend3.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend3.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend3.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}const batchMatMulConfig2={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul2};function cast51(args){const{inputs:{x},attrs:{dtype},backend:backend3}=args,out=backend3.makeOutput(x.shape,dtype),inVals=backend3.typedArrayFromHeap(x),outVals=backend3.typedArrayFromHeap(out);return outVals.set(inVals),out}const castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast51};let wasmClip;function setup6(backend3){wasmClip=backend3.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(x.shape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}const clipByValueConfig={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat19(args){const{inputs,backend:backend3}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),out=backend3.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;const $inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return $inputs[0];const shapes=$inputs.map(t=>t.shape);backend_util_exports.assertParamsConsistent(shapes,axis);const batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis));let sumInnerDims=0;const innerDims=$inputs.map(input2=>{const innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend3.typedArrayFromHeap(input2)),outVals=backend3.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);const permutation=backend_util_exports.getAxesPermutation([axis],xRank);let permutedX=x;permutation!==null&&(permutedX=transpose19({inputs:{x},attrs:{perm:permutation},backend:backend3}));const permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);const permutedOut=backend3.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend3.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend3.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse12?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){const undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose19({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend3}),backend3.disposeData(permutedX.dataId),backend3.disposeData(permutedOut.dataId)}return out}const cumsumConfig={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum6};let wasmDepthToSpace;function setup11(backend3){wasmDepthToSpace=backend3.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace2(args){const{backend:backend3,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);const batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend3.makeOutput(outputShape,"float32"),xData=backend3.dataIdMap.get(x.dataId),xId=xData.id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend3.dataIdMap.get(out.dataId).id,channelsLast=dataFormat==="NHWC"?1:0;return wasmDepthToSpace(xId,blockSize,channelsLast,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}const depthToSpaceConfig={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace2};let wasmDepthwiseConv2d;function setup12(backend3){wasmDepthwiseConv2d=backend3.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d5(args){const{inputs,attrs,backend:backend3}=args,{x,filter}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad11,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad11,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}const depthwiseConv2dNativeConfig2={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d5},supportsFullBroadcast2=!0,divConfig3=createBinaryKernelConfig(Div,supportsFullBroadcast2),supportsFullBroadcast3=!1,equalConfig=createBinaryKernelConfig(Equal,supportsFullBroadcast3,"bool"),expConfig2=createUnaryKernelConfig(Exp);function fill6(args){const{attrs:{shape,value,dtype},backend:backend3}=args,out=backend3.makeOutput(shape,dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(value),out}const fillConfig2={kernelName:Fill,backendName:"wasm",kernelFunc:fill6};let wasmFlipLeftRight;function setup13(backend3){wasmFlipLeftRight=backend3.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){const{inputs,backend:backend3}=args,{image:image3}=inputs,out=backend3.makeOutput(image3.shape,image3.dtype),imageId=backend3.dataIdMap.get(image3.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}const flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},supportsFullBroadcast4=!1,floorDivConfig=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast4);let wasmBatchNorm;function setup14(backend3){wasmBatchNorm=backend3.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){const{backend:backend3,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean7,variance,offset,scale:scale2}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,meanId=backend3.dataIdMap.get(mean7.dataId).id,varianceId=backend3.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend3.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend3.dataIdMap.get(scale2.dataId).id:0,out=backend3.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;const outId=backend3.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}const fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm};let wasmFusedConv2d;function setup15(backend3){wasmFusedConv2d=backend3.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d(args){const{inputs,attrs,backend:backend3}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad11,dilations,dataFormat,dimRoundingMode,activation:activation2}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad11,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);const xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels;let biasId=0;if(bias!=null){const biasData=backend3.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}const filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend3.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,outId),out}const fusedConv2DConfig2={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d};let wasmFusedDepthwiseConv2d;function setup16(backend3){wasmFusedDepthwiseConv2d=backend3.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){const{inputs,attrs,backend:backend3}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad11,dilations,dataFormat,dimRoundingMode,activation:activation2}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad11,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);const xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels;let biasId=0;if(bias!=null){const biasData=backend3.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}const filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend3.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,outId),out}const fusedDepthwiseConv2DConfig2={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d};let wasmGatherNd;function setup17(backend3){wasmGatherNd=backend3.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd(args){const{backend:backend3,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend3.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;const indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xData=backend3.dataIdMap.get(params.dataId),xId=xData.id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}const gatherNdConfig={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd};let wasmGather;function setup18(backend3){wasmGather=backend3.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV2(args){const{backend:backend3,inputs,attrs}=args,{x,indices}=inputs,{axis}=attrs,newShape=x.shape.slice();newShape[axis]=util_exports.sizeFromShape(indices.shape);const stridesSize=x.shape.length-1,out=backend3.makeOutput(newShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;const xData=backend3.dataIdMap.get(x.dataId),xId=xData.id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,outId=backend3.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(newShape)).buffer);wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,axis,outStridesBytes,outId);const parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis);return out.shape=shapeInfo.outputShape,out}const gatherV2Config={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV2},supportsFullBroadcast5=!1,greaterConfig=createBinaryKernelConfig(Greater,supportsFullBroadcast5,"bool"),supportsFullBroadcast6=!1,greaterEqualConfig=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessConfig=createBinaryKernelConfig(Less,supportsFullBroadcast7,"bool"),supportsFullBroadcast8=!1,lessEqualConfig=createBinaryKernelConfig(LessEqual,supportsFullBroadcast8,"bool"),logConfig2=createUnaryKernelConfig(Log),supportsFullBroadcast9=!1,logicalAndConfig=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast9,"bool");let wasmMax;function setup19(backend3){wasmMax=backend3.wasm.cwrap(Max,null,["number, number, number"])}function max9(args){const{backend:backend3,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}const inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max9},supportsFullBroadcast10=!1,maximumConfig=createBinaryKernelConfig(Maximum,supportsFullBroadcast10);let wasmMaxPool;function setup20(backend3){wasmMaxPool=backend3.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){const{inputs,attrs,backend:backend3}=args,x=inputs.x,xId=backend3.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad11,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad11,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}const maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4};let wasmMin;function setup21(backend3){wasmMin=backend3.wasm.cwrap(Min,null,["number, number, number"])}function min7(args){const{backend:backend3,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}const inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const minConfig={kernelName:Min,backendName:"wasm",setupFunc:setup21,kernelFunc:min7},supportsFullBroadcast11=!1,minimumConfig=createBinaryKernelConfig(Minimum,supportsFullBroadcast11),supportsFullBroadcast12=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast12),negateConfig=createUnaryKernelConfig(Negate);function parseResultStruct(backend3,resOffset){const result=new Int32Array(backend3.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend3.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}let wasmFunc3;function setup22(backend3){wasmFunc3=backend3.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc3(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pSelectedScores),backend3.wasm._free(pValidOutputs);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices);return selectedIndicesTensor}const nonMaxSuppressionV3Config2={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup22,kernelFunc};let wasmFunc4;function setup23(backend3){wasmFunc4=backend3.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV4(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pSelectedScores);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend3.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}const nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup23,kernelFunc:nonMaxSuppressionV4};let wasmFunc5;function setup24(backend3){wasmFunc5=backend3.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pValidOutputs);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend3.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}const nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup24,kernelFunc:kernelFunc2},supportsFullBroadcast13=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast13,"bool");let wasmOneHot;function setup25(backend3){wasmOneHot=backend3.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot2(args){const{inputs,backend:backend3,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend3.makeOutput([...indices.shape,depth],"int32"),outId=backend3.dataIdMap.get(out.dataId).id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}const oneHotConfig={kernelName:OneHot,backendName:"wasm",setupFunc:setup25,kernelFunc:oneHot2};function onesLike2(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(1),out}const onesLikeConfig={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike2};let wasmPadV2;function setup26(backend3){wasmPadV2=backend3.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad10(args){const{inputs:{x},backend:backend3,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(outShape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}const padV2Config2={kernelName:PadV2,backendName:"wasm",kernelFunc:pad10,setupFunc:setup26},supportsFullBroadcast14=!1,powConfig=createBinaryKernelConfig(Pow,supportsFullBroadcast14);let wasmPrelu;function setup27(backend3){wasmPrelu=backend3.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu8(args){const{inputs,backend:backend3}=args,{x,alpha}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,weightsId=backend3.dataIdMap.get(alpha.dataId).id,out=backend3.makeOutput(x.shape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}const preluConfig2={kernelName:Prelu,backendName:"wasm",setupFunc:setup27,kernelFunc:prelu8},reluConfig2=createUnaryKernelConfig(Relu),relu6Config2=createUnaryKernelConfig(Relu6);let wasmResizeBilinear;function setup28(backend3){wasmResizeBilinear=backend3.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number"])}function resizeBilinear2(args){const{backend:backend3,inputs,attrs}=args,{images}=inputs,{alignCorners,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels];let xData=backend3.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast51({backend:backend3,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend3.dataIdMap.get(castedData.dataId));const xId=xData.id,out=backend3.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;const outId=backend3.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,outId),castedData!=null&&backend3.disposeData(castedData.dataId),out}const resizeBilinearConfig={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup28,kernelFunc:resizeBilinear2};let wasmReverse;function setup29(backend3){wasmReverse=backend3.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse11(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity4({inputs:{x},backend:backend3});const out=backend3.makeOutput(x.shape,x.dtype),xId=backend3.dataIdMap.get(x.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape91({inputs:{x:out},attrs:{shape:x.shape},backend:backend3})}const reverseConfig={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse11,setupFunc:setup29};let wasmRotate;function setup30(backend3){wasmRotate=backend3.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){const{inputs,backend:backend3,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend3.makeOutput(image3.shape,image3.dtype),imageId=backend3.dataIdMap.get(image3.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}const rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup30},rsqrtConfig2=createUnaryKernelConfig(Rsqrt);let wasmScatterNd;function setup31(backend3){wasmScatterNd=backend3.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd(args){const{backend:backend3,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend3.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;const{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,updatesData=backend3.dataIdMap.get(updates.dataId),updatesId=updatesData.id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}const scatterNdConfig={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup31,kernelFunc:scatterNd};let wasmSelect;function setup32(backend3){wasmSelect=backend3.wasm.cwrap(SelectV2,null,["number","number","number","number","number"])}function select(args){const{inputs,backend:backend3}=args,{condition,t,e}=inputs,conditionId=backend3.dataIdMap.get(condition.dataId).id,tId=backend3.dataIdMap.get(t.dataId).id,eId=backend3.dataIdMap.get(e.dataId).id,out=backend3.makeOutput(t.shape,t.dtype),outId=backend3.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}const selectV2Config={kernelName:SelectV2,backendName:"wasm",kernelFunc:select,setupFunc:setup32};let wasmFunc6;function setup33(backend3){wasmFunc6=backend3.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid8(args){const{backend:backend3,inputs:{x}}=args,xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(x.shape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc6(xId,outId),out}const sigmoidConfig2={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup33,kernelFunc:sigmoid8},sinConfig3=createUnaryKernelConfig(Sin);function slice20(args){const{inputs:{x},attrs:{begin,size},backend:backend3}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend3.typedArrayFromHeap(x),out=backend3.makeOutput(size_,x.dtype),outVals=backend3.typedArrayFromHeap(out),xStrides=util_exports.computeStrides(x.shape);if(isContinous){const flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return outVals.set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}const rank=x.shape.length;return rank===2?slice2d3(xVals,xStrides[0],outVals,begin_,size_):rank===3?slice3d3(xVals,xStrides[0],xStrides[1],outVals,begin_,size_):rank===4?slice4d3(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_):genericSliceSlow(xVals,x,outVals,begin_,size_),out}function slice2d3(xVals,xStride,outVals,begin,size){let outOffset=0;const beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;iidx+begin[j]);outVals[i]=xBuf.get(...xLoc)}}const sliceConfig2={kernelName:Slice,backendName:"wasm",kernelFunc:slice20};let wasmFunc7;function setup34(backend3){wasmFunc7=backend3.wasm.cwrap(Softmax,null,["number","number","number","number"])}function softmax5(args){const{backend:backend3,inputs:{logits},attrs:{dim}}=args,xId=backend3.dataIdMap.get(logits.dataId).id,out=backend3.makeOutput(logits.shape,logits.dtype),outId=backend3.dataIdMap.get(out.dataId).id,channels=logits.shape[dim],batch=util_exports.sizeFromShape(logits.shape)/channels;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId,channels,batch),out}const softmaxConfig={kernelName:Softmax,backendName:"wasm",setupFunc:setup34,kernelFunc:softmax5};function split12(args){const{inputs,attrs,backend:backend3}=args,{x}=inputs,{numOrSizeSplits,axis}=attrs,$axis=util_exports.parseAxisParam(axis,x.shape)[0],splitSizes=backend_util_exports.prepareSplitSize(x,numOrSizeSplits,axis),begin=new Array(x.shape.length).fill(0),size=x.shape.slice();return splitSizes.map(s=>{const xSliceSize=[...size];xSliceSize[$axis]=s;const xSlice=slice20({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend3});return begin[$axis]+=s,xSlice})}const splitVConfig={kernelName:SplitV,backendName:"wasm",kernelFunc:split12},sqrtConfig2=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15);let wasmStridedSlice;function setup35(backend3){wasmStridedSlice=backend3.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice2(args){const{backend:backend3,inputs,attrs}=args,{x}=inputs;let{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));const{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});const xReshaped=reshape91({inputs:{x},attrs:{shape:newShape},backend:backend3}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;const shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});const size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1),nonStrided=strides.every(v=>v===1);if(nonStrided){const xSliced=slice20({inputs:{x},attrs:{begin,size},backend:backend3});return reshape91({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend3})}const out=backend3.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){const xId=backend3.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend3.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape91({inputs:{x:out},attrs:{shape:outShape},backend:backend3})}const stridedSliceConfig={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup35,kernelFunc:stridedSlice2},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16);let wasmSum;function setup36(backend3){wasmSum=backend3.wasm.cwrap(Sum,null,["number, number, number"])}function sum28(args){const{backend:backend3,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);let reductionAxes=axes;if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const sumConfig={kernelName:Sum,backendName:"wasm",setupFunc:setup36,kernelFunc:sum28},tanhConfig2=createUnaryKernelConfig(Tanh);let wasmTile;function setup37(backend3){wasmTile=backend3.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile11(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i({dataId,dtype,shape:outShape}))}const unpackConfig={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack};function zerosLike2(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(0),out}const zerosLikeConfig={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike2},kernelConfigs3=[absConfig2,addConfig3,addNConfig,argMaxConfig,avgPoolConfig3,batchMatMulConfig2,castConfig3,clipByValueConfig,concatConfig3,conv2DConfig2,conv2DBackpropInputConfig2,cosConfig3,cropAndResizeConfig,cumsumConfig,depthToSpaceConfig,depthwiseConv2dNativeConfig2,divConfig3,equalConfig,expConfig2,fillConfig2,flipLeftRightConfig3,floorDivConfig,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig,gatherV2Config,greaterConfig,greaterEqualConfig,identityConfig3,lessConfig,lessEqualConfig,logConfig2,logicalAndConfig,maxConfig3,maximumConfig,maxPoolConfig3,minConfig,minimumConfig,multiplyConfig3,negateConfig,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig,onesLikeConfig,padV2Config2,powConfig,preluConfig2,reluConfig2,relu6Config2,reshapeConfig3,resizeBilinearConfig,reverseConfig,rotateWithOffsetConfig3,rsqrtConfig2,scatterNdConfig,selectV2Config,sigmoidConfig2,sinConfig3,sliceConfig2,softmaxConfig,splitVConfig,sqrtConfig2,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig,subConfig3,sumConfig,tanhConfig2,tileConfig,transposeConfig3,unpackConfig,zerosLikeConfig];for(const kernelConfig of kernelConfigs3)registerKernel(kernelConfig);const ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return 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(e){return!1}});const tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),WASM_PRIORITY=2;class BackendWasm extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine15())}write(values,shape,dtype){const dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){const start=util_exports.now();f();const kernelMs=util_exports.now()-start;return{kernelMs}}move(dataId,values,shape,dtype){const id=this.dataIdNextNumber++;if(dtype==="string"){const stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}const size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){const{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;const bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){const data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};const id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});const size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){const buffer11=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer11,memoryOffset,size);case"int32":return new Int32Array(buffer11,memoryOffset,size);case"bool":return new Uint8Array(buffer11,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}}registerBackend("wasm",async()=>{const{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){const[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{const factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){const response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var _scriptDir = undefined; var WasmBackendModuleThreadedSimd = "+tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=tfjs_backend_wasm.default(factoryConfig);const voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{if(initialized)return;if(initAborted)return;initAborted=!0;const rejectMsg="Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers";reject({message:rejectMsg})}})}function typedArrayFromBuffer(buffer11,dtype){switch(dtype){case"float32":return new Float32Array(buffer11);case"int32":return new Int32Array(buffer11);case"bool":return new Uint8Array(buffer11);default:throw new Error(`Unknown dtype ${dtype}`)}}const wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"];let wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;const missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}const version17="2.7.0",facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){const h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){const startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>{const scaledCoord=[coord[0]*factor[0],coord[1]*factor[1]];return scaledCoord});return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){const center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){const centers=getBoxCenter(box),size=getBoxSize(box),maxEdge=Math.max(...size),halfSize=maxEdge/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function shiftBox(box,shiftFactor){const boxSize=[box.endPoint[0]-box.startPoint[0],box.endPoint[1]-box.startPoint[1]],shiftVector=[boxSize[0]*shiftFactor[0],boxSize[1]*shiftFactor[1]],startPoint=[box.startPoint[0]+shiftVector[0],box.startPoint[1]+shiftVector[1]],endPoint=[box.endPoint[0]+shiftVector[0],box.endPoint[1]+shiftVector[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){const radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}const buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot2(v1,v2){let product=0;for(let i=0;itypeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){const isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{const pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}class Human{constructor(userConfig2={}){this.tf=tfjs_esm_exports,this.version=version3,this.config=mergeDeep(config_default,userConfig2),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}log(...msg){msg&&this.config.console&&console.log("Human:",...msg)}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;const current=engine15().state.numTensors,previous=this.numTensors;this.numTensors=current;const leaked=current-previous;leaked!==0&&this.log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig2){this.state="load";const timeStamp=now2();userConfig2&&(this.config=mergeDeep(this.config,userConfig2)),this.firstRun&&(this.log(`version: ${this.version} TensorFlow/JS version: ${version}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(this.log("configuration:",this.config),this.log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)));const current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){const timeStamp=now2();if(this.state="backend",this.log("setting backend:",this.config.backend),this.config.backend==="wasm"){this.log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath);const simd=await env().getAsync("WASM_HAS_SIMD_SUPPORT");simd||this.log("warning: wasm simd support is not enabled")}if(await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(this.log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);const gl=await backend2().getGPGPUContext().gl;this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){let timeStamp,ageRes,genderRes,emotionRes,embeddingRes;const faceRes=[];this.state="run:face",timeStamp=now2();const faces=await this.models.facemesh.estimateFaces(input2,this.config);this.perf.face=Math.trunc(now2()-timeStamp);for(const face2 of faces){if(this.analyze("Get Face"),!face2.image||face2.image.isDisposedInternal){this.log("Face object is disposed:",face2.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face2.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face2.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face2.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face2.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face2.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face2.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face2.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face2.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face2.image.dispose();const irisSize=face2.annotations.leftEyeIris&&face2.annotations.rightEyeIris?11.7*Math.max(Math.abs(face2.annotations.leftEyeIris[3][0]-face2.annotations.leftEyeIris[1][0]),Math.abs(face2.annotations.rightEyeIris[4][1]-face2.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face2.confidence,box:face2.box,mesh:face2.mesh,annotations:face2.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig2={}){this.state="image",this.config=mergeDeep(this.config,userConfig2);const process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig2={}){return new Promise(async resolve=>{this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig2),this.state="check";const error=this.sanity(input2);error&&(this.log(error,input2),resolve({error}));let poseRes,handRes,faceRes;const timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine15().startScope(),this.analyze("Start Scope:"),timeStamp=now2();const process3=image2.process(input2,this.config);if(!process3||!process3.tensor){this.log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?this.models.posenet.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await this.models.posenet.estimatePoses(process3.tensor,this.config):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?this.models.handpose.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await this.models.handpose.estimateHands(process3.tensor,this.config):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.config.async&&([faceRes,poseRes,handRes]=await Promise.all([faceRes,poseRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine15().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes={face:gesture.face(faceRes),body:gesture.body(poseRes),hand:gesture.hand(handRes)},this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig2,sample){sample||(sample=new ImageData(255,255));const warmup=await this.detect(sample,userConfig2);return this.log("warmed up"),warmup}}async function drawGesture(result,canvas,ui2){if(!result)return;const ctx=canvas.getContext("2d");ctx.font=ui2.baseFont,ctx.fillStyle=ui2.baseLabel;let i=1;for(const[key,val]of Object.entries(result))if(val.length>0){const label=`${key}: ${val.join(", ")}`;ctx.fillStyle="black",ctx.fillText(label,8,2+i*ui2.baseLineHeight),ctx.fillStyle=ui2.baseLabel,ctx.fillText(label,6,0+i*ui2.baseLineHeight),i+=1}}async function drawFace(result,canvas,ui2,triangulation){if(!result)return;const ctx=canvas.getContext("2d");for(const face of result){ctx.font=ui2.baseFont,ctx.strokeStyle=ui2.baseColor,ctx.fillStyle=ui2.baseColor,ctx.lineWidth=ui2.baseLineWidth,ctx.beginPath(),ui2.drawBoxes&&ctx.rect(face.box[0],face.box[1],face.box[2],face.box[3]);const labels=[];if(face.genderConfidence&&labels.push(`${Math.trunc(100*face.genderConfidence)}% ${face.gender||""}`),face.age&&labels.push(`age: ${face.age||""}`),face.iris&&labels.push(`iris: ${face.iris}`),face.emotion&&face.emotion.length>0){const emotion2=face.emotion.map(a=>`${Math.trunc(100*a.score)}% ${a.emotion}`);labels.push(emotion2.join(" "))}ctx.fillStyle=ui2.baseLabel;for(let i=0;iface.mesh[index]),path=new Path2D;path.moveTo(points[0][0],points[0][1]);for(const point of points)path.lineTo(point[0],point[1]);path.closePath(),ctx.strokeStyle=ui2.useDepth?`rgba(${127.5+2*points[0][2]}, ${127.5-2*points[0][2]}, 255, 0.3)`:ui2.baseColor,ctx.stroke(path),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?`rgba(${127.5+2*points[0][2]}, ${127.5-2*points[0][2]}, 255, 0.3)`:ui2.baseColor,ctx.fill(path))}if(face.annotations&&face.annotations.leftEyeIris){ctx.strokeStyle=ui2.useDepth?"rgba(255, 200, 255, 0.3)":ui2.baseColor,ctx.beginPath();const sizeX=Math.abs(face.annotations.leftEyeIris[3][0]-face.annotations.leftEyeIris[1][0])/2,sizeY=Math.abs(face.annotations.leftEyeIris[4][1]-face.annotations.leftEyeIris[2][1])/2;ctx.ellipse(face.annotations.leftEyeIris[0][0],face.annotations.leftEyeIris[0][1],sizeX,sizeY,0,0,2*Math.PI),ctx.stroke(),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?"rgba(255, 255, 200, 0.3)":ui2.baseColor,ctx.fill())}if(face.annotations&&face.annotations.rightEyeIris){ctx.strokeStyle=ui2.useDepth?"rgba(255, 200, 255, 0.3)":ui2.baseColor,ctx.beginPath();const sizeX=Math.abs(face.annotations.rightEyeIris[3][0]-face.annotations.rightEyeIris[1][0])/2,sizeY=Math.abs(face.annotations.rightEyeIris[4][1]-face.annotations.rightEyeIris[2][1])/2;ctx.ellipse(face.annotations.rightEyeIris[0][0],face.annotations.rightEyeIris[0][1],sizeX,sizeY,0,0,2*Math.PI),ctx.stroke(),ui2.fillPolygons&&(ctx.fillStyle=ui2.useDepth?"rgba(255, 255, 200, 0.3)":ui2.baseColor,ctx.fill())}}}}}const lastDrawnPose=[];async function drawBody(result,canvas,ui2){if(!result)return;const ctx=canvas.getContext("2d");ctx.lineJoin="round";for(const i in result){if(!lastDrawnPose[i]&&ui2.buffered&&(lastDrawnPose[i]={...result[i]}),ctx.fillStyle=ui2.baseColor,ctx.strokeStyle=ui2.baseColor,ctx.font=ui2.baseFont,ctx.lineWidth=ui2.baseLineWidth,ui2.drawPoints)for(const pt in result[i].keypoints)ctx.beginPath(),ui2.buffered?(lastDrawnPose[i].keypoints[pt].position.x=(lastDrawnPose[i].keypoints[pt].position.x+result[i].keypoints[pt].position.x)/2,lastDrawnPose[i].keypoints[pt].position.y=(lastDrawnPose[i].keypoints[pt].position.y+result[i].keypoints[pt].position.y)/2,ctx.arc(lastDrawnPose[i].keypoints[pt].position.x,lastDrawnPose[i].keypoints[pt].position.y,2,0,2*Math.PI)):ctx.arc(result[i].keypoints[pt].position.x,result[i].keypoints[pt].position.y,2,0,2*Math.PI),ctx.fill();if(ui2.drawPolygons){const path=new Path2D;let part;part=result[i].keypoints.find(a=>a.part==="leftShoulder"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightShoulder"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightHip"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftHip"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftShoulder"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftHip"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftKnee"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftAnkle"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightHip"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightKnee"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightAnkle"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightShoulder"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftShoulder"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftElbow"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftWrist"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="leftShoulder"),path.moveTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightShoulder"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightElbow"),path.lineTo(part.position.x,part.position.y),part=result[i].keypoints.find(a=>a.part==="rightWrist"),path.lineTo(part.position.x,part.position.y),ctx.stroke(path)}}}async function drawHand(result,canvas,ui2){if(!result)return;const ctx=canvas.getContext("2d");ctx.lineJoin="round";for(const hand of result){if(ctx.font=ui2.baseFont,ctx.lineWidth=ui2.baseLineWidth,ui2.drawBoxes&&(ctx.lineWidth=ui2.baseLineWidth,ctx.beginPath(),ctx.strokeStyle=ui2.baseColor,ctx.fillStyle=ui2.baseColor,ctx.rect(hand.box[0],hand.box[1],hand.box[2],hand.box[3]),ctx.fillStyle="black",ctx.fillText("hand",hand.box[0]+3,1+hand.box[1]+ui2.baseLineHeight,hand.box[2]),ctx.fillStyle=ui2.baseLabel,ctx.fillText("hand",hand.box[0]+2,0+hand.box[1]+ui2.baseLineHeight,hand.box[2]),ctx.stroke()),ui2.drawPoints&&(hand.landmarks&&hand.landmarks.length>0))for(const point of hand.landmarks)ctx.fillStyle=ui2.useDepth?`rgba(${127.5+2*point[2]}, ${127.5-2*point[2]}, 255, 0.5)`:ui2.baseColor,ctx.beginPath(),ctx.arc(point[0],point[1],2,0,2*Math.PI),ctx.fill();if(ui2.drawPolygons){const addPart=part=>{if(!part)return;for(let i=0;i0?i-1:0][0],part[i>0?i-1:0][1]),ctx.lineTo(part[i][0],part[i][1]),ctx.stroke()};addPart(hand.annotations.indexFinger),addPart(hand.annotations.middleFinger),addPart(hand.annotations.ringFinger),addPart(hand.annotations.pinky),addPart(hand.annotations.thumb)}}}var draw_default={face:drawFace,body:drawBody,hand:drawHand,gesture:drawGesture};let instance=0,CSScreated=!1,theme={background:"darkslategray",hover:"lightgray",itemBackground:"black",itemColor:"white",buttonBackground:"lightblue",buttonHover:"lightgreen",checkboxOn:"lightgreen",checkboxOff:"lightcoral",rangeBackground:"lightblue",rangeLabel:"white",chartColor:"lightblue"};function createCSS(){if(CSScreated)return;const css=`
:root { --rounded: 0.2rem; }
- .menu { position: absolute; top: 0rem; right: 0; width: fit-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;
+ .menu { position: absolute; top: 0rem; right: 0; width: max-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;
box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; }
.menu:hover { box-shadow: 0 0 8px ${theme.hover}; }
diff --git a/dist/demo-browser-index.js.map b/dist/demo-browser-index.js.map
index 4892d5d2..dcfebdab 100644
--- a/dist/demo-browser-index.js.map
+++ b/dist/demo-browser-index.js.map
@@ -1,7 +1,7 @@
{
"version": 3,
"sources": ["../src/face/blazeface.js", "../src/face/box.js", "../src/face/util.js", "../src/face/coords.js", "../src/face/facepipeline.js", "../src/face/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/body/modelBase.js", "../src/body/modelMobileNet.js", "../src/body/heapSort.js", "../src/body/buildParts.js", "../src/body/keypoints.js", "../src/body/vectors.js", "../src/body/decodePose.js", "../src/body/decodeMultiple.js", "../src/body/util.js", "../src/body/modelPoseNet.js", "../src/body/posenet.js", "../src/hand/handdetector.js", "../src/hand/handpipeline.js", "../src/hand/anchors.js", "../src/hand/handpose.js", "../src/gesture.js", "../src/imagefx.js", "../src/image.js", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Negate.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SelectV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Split.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Negate.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SelectV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Split.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Negate.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SelectV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Split.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Negate.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SelectV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Split.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/human.js", "../src/hand/box.js", "../src/hand/util.js", "../src/human.js", "../config.js", "../src/human.js", "../demo/draw.js", "../demo/menu.js", "../demo/gl-bench.js", "../demo/browser.js"],
- "sourcesContent": ["import * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (const i in boundingBoxes) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 1000;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]]));\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => ([\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1], coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n this.skipped++;\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n // don't reset on test image\n if ((input.shape[1] !== 255) && (input.shape[2] !== 255)) this.skipped = 0;\n }\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (const i in this.storedBoxes) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...enlargedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // console.log(this.skipped, config.face.detector.skipFrames, this.detectedFaces, config.face.detector.maxFaces, detector?.boxes.length, this.storedBoxes.length);\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n let angle = 0;\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n const boxLandmarksFromMeshModel = box.landmarks.length >= LANDMARKS_COUNT;\n let [indexOfMouth, indexOfForehead] = MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n if (boxLandmarksFromMeshModel === false) {\n [indexOfMouth, indexOfForehead] = BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n }\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n let rotatedImage = input;\n let rotationMatrix = util.IDENTITY_MATRIX;\n if (angle !== 0) {\n rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n }\n const face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n const outputFace = config.face.detector.rotation ? tf.image.rotateWithOffset(face, angle) : face;\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: outputFace,\n };\n return prediction;\n }\n\n // The first returned tensor represents facial contours, which are included in the coordinates.\n const [, confidence, contourCoords] = this.meshDetector.predict(face);\n const confidenceVal = confidence.dataSync()[0];\n confidence.dispose();\n if (confidenceVal < config.face.detector.minConfidence) {\n contourCoords.dispose();\n return null;\n }\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = (this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop])));\n const eyePredictionsData = eyePredictions.dataSync();\n eyePredictions.dispose();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n tf.dispose(rawCoords);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: outputFace,\n };\n this.storedBoxes[i] = { ...landmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as pipe from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.pipeline = new pipe.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.pipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n // guard against disposed tensors on long running operations such as pause in middle of processing\n if (prediction.isDisposedInternal) continue;\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key in coords.MESH_ANNOTATIONS) {\n if (config.face.iris.enabled || key.includes('Iris') === false) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n }\n results.push({\n confidence: prediction.confidence || 0,\n box: prediction.box ? [prediction.box.startPoint[0], prediction.box.startPoint[1], prediction.box.endPoint[0] - prediction.box.startPoint[0], prediction.box.endPoint[1] - prediction.box.startPoint[1]] : 0,\n mesh,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nasync function load(config) {\n const models = await Promise.all([\n blazeface.load(config),\n tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }),\n tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }),\n ]);\n const faceMesh = new MediaPipeFaceMesh(models[0], models[1], models[2], config);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "const profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n // eslint-disable-next-line no-console\n console.log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet frame = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((frame < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet frame = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((frame < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.gender.inputSize, config.face.gender.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n // const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surpise', 'neutral'];\nconst models = {};\nlet last = [];\nlet frame = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((frame < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // euclidean distance\n const distance = 10 * Math.sqrt(\n embedding1\n .map((val, i) => (val - embedding2[i]))\n .reduce((dist, diff) => dist + (diff ** 2), 0),\n );\n const confidence = 2 * (0.5 - distance); // double confidence output for bigger differences and round to three decimals\n return Math.trunc(1000 * confidence) / 1000;\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nclass BaseModel {\n constructor(model, outputStride) {\n this.model = model;\n this.outputStride = outputStride;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = this.preprocessInput(input.toFloat());\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = this.nameOutputResults(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n /**\n * Releases the CPU and GPU memory allocated by the model.\n */\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\n\nclass MobileNet extends modelBase.BaseModel {\n // eslint-disable-next-line class-methods-use-this\n preprocessInput(input) {\n // Normalize the pixels [0, 255] to be between [-1, 1].\n return tf.tidy(() => tf.div(input, 127.5).sub(1.0));\n }\n\n // eslint-disable-next-line class-methods-use-this\n nameOutputResults(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n }\n}\nexports.MobileNet = MobileNet;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) {\n break;\n }\n }\n return localMaximum;\n}\n/**\n * Builds a priority queue with part candidate positions for a specific image in\n * the batch. For this we find all local maxima in the score maps with score\n * values above a threshold. We create a single priority queue across all parts.\n */\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\nexports.NUM_KEYPOINTS = exports.partNames.length;\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\n/*\n * Define the skeleton. This defines the parent->child relationships of our\n * tree. Arbitrarily this defines the nose as the root of the tree, however\n * since we will infer the displacement for both parent->child and\n * child->parent, we can define the tree root as any node.\n */\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n/**\n * We get a new keypoint along the `edgeId` for the pose instance, assuming\n * that the position of the `idSource` part is already known. For this, we\n * follow the displacement vector from the source to target part (stored in\n * the `i`-t channel of the displacement tensor). The displaced keypoint\n * vector is refined using the offset vector by `offsetRefineStep` times.\n */\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n/**\n * Follows the displacement fields to decode the full pose of the object\n * instance given the position of a part that acts as root.\n *\n * @return An array of decoded keypoints and their scores for a single pose\n */\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward\n // displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward\n // displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n/* Score the newly proposed object instance without taking into account\n * the scores of the parts that overlap with any previously detected\n * instance.\n */\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) {\n result += score;\n }\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n// A point (y, x) is considered as root part candidate if its score is a\n// maximum in a window |y - y'| <= kLocalMaximumRadius, |x - x'| <=\n// kLocalMaximumRadius.\nconst kLocalMaximumRadius = 1;\n/**\n * Detects multiple poses and finds their parts from part scores and\n * displacement vectors. It returns up to `maxDetections` object instance\n * detections in decreasing root score order. It works as follows: We first\n * create a priority queue with local part score maxima above\n * `scoreThreshold`, considering all parts at the same time. Then we\n * iteratively pull the top element of the queue (in decreasing score order)\n * and treat it as a root candidate for a new object instance. To avoid\n * duplicate detections, we reject the root candidate if it is within a disk\n * of `nmsRadius` pixels from the corresponding part of a previously detected\n * instance, which is a form of part-based non-maximum suppression (NMS). If\n * the root candidate passes the NMS check, we start a new object instance\n * detection, treating the corresponding part as root and finding the\n * positions of the remaining parts by following the displacement vectors\n * along the tree-structured part graph. We assign to the newly detected\n * instance a score equal to the sum of scores of its parts which have not\n * been claimed by a previous instance (i.e., those at least `nmsRadius`\n * pixels away from the corresponding part of all previously detected\n * instances), divided by the total number of parts `numParts`.\n *\n * @param heatmapScores 3-D tensor with shape `[height, width, numParts]`.\n * The value of heatmapScores[y, x, k]` is the score of placing the `k`-th\n * object part at position `(y, x)`.\n *\n * @param offsets 3-D tensor with shape `[height, width, numParts * 2]`.\n * The value of [offsets[y, x, k], offsets[y, x, k + numParts]]` is the\n * short range offset vector of the `k`-th object part at heatmap\n * position `(y, x)`.\n *\n * @param displacementsFwd 3-D tensor of shape\n * `[height, width, 2 * num_edges]`, where `num_edges = num_parts - 1` is the\n * number of edges (parent-child pairs) in the tree. It contains the forward\n * displacements between consecutive part from the root towards the leaves.\n *\n * @param displacementsBwd 3-D tensor of shape\n * `[height, width, 2 * num_edges]`, where `num_edges = num_parts - 1` is the\n * number of edges (parent-child pairs) in the tree. It contains the backward\n * displacements between consecutive part from the root towards the leaves.\n *\n * @param outputStride The output stride that was used when feed-forwarding\n * through the PoseNet model. Must be 32, 16, or 8.\n *\n * @param maxPoseDetections Maximum number of returned instance detections per\n * image.\n *\n * @param scoreThreshold Only return instance detections that have root part\n * score greater or equal to this value. Defaults to 0.5.\n *\n * @param nmsRadius Non-maximum suppression part distance. It needs to be\n * strictly positive. Two parts suppress each other if they are less than\n * `nmsRadius` pixels away. Defaults to 20.\n *\n * @return An array of poses and their scores, each containing keypoints and\n * the corresponding keypoint scores.\n */\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, outputStride, maxPoseDetections, scoreThreshold = 0.5, nmsRadius = 20) {\n const poses = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius * nmsRadius;\n // Generate at most maxDetections object instances per image in\n // decreasing root part score order.\n while (poses.length < maxPoseDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it\n // is within a disk of `nmsRadius` pixels from the corresponding part of\n // a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as modelMobileNet from './modelMobileNet';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as util from './util';\n\nclass PoseNet {\n constructor(net) {\n this.baseModel = net;\n this.outputStride = 16;\n }\n\n async estimatePoses(input, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized);\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, this.outputStride, config.body.maxDetections, config.body.scoreThreshold, config.body.nmsRadius);\n const resultPoses = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n resolve(resultPoses);\n });\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const graphModel = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelMobileNet.MobileNet(graphModel, this.outputStride);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelMobileNet from './modelMobileNet';\nimport * as modelPoseNet from './modelPoseNet';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\nexports.load = modelPoseNet.load;\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.MobileNet = modelMobileNet.MobileNet;\nexports.decodeMultiplePoses = decodeMultiple.decodeMultiplePoses;\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\nexports.getBoundingBox = util.getBoundingBox;\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\nexports.scalePose = util.scalePose;\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scores = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scoresVal = scores.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scores.dispose();\n filteredT.dispose();\n const hands = [];\n for (const boxIndex of filtered) {\n if (scoresVal[boxIndex] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [boxIndex, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [boxIndex, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, boxIndex).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scoresVal[boxIndex] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n if (!predictions || predictions.length === 0) return null;\n const hands = [];\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\nconst PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 3;\nconst HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // increased from model default 1.65;\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(boundingBoxDetector, meshDetector, inputSize) {\n this.boxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 1000;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => {\n const homogeneousCoordinate = [...coord, 1];\n return util.rotatePoint(homogeneousCoordinate, rotationMatrix);\n });\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n boxAroundHand.palmLandmarks = palmLandmarks;\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n this.skipped++;\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.boxDetector.estimateHandBounds(image, config);\n // don't reset on test image\n if ((image.shape[1] !== 255) && (image.shape[2] !== 255)) this.skipped = 0;\n }\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.storedBoxes = [];\n this.detectedHands = 0;\n for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // console.log(`skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (const i in this.storedBoxes) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]);\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized);\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidence, keypoints] = await this.meshDetector.predict(handImage);\n handImage.dispose();\n const confidenceValue = confidence.dataSync()[0];\n confidence.dispose();\n if (confidenceValue >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence: confidenceValue,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as pipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(pipe) {\n this.pipeline = pipe;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.pipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n hands.push({\n confidence: prediction.confidence,\n box: prediction.box ? [\n prediction.box.topLeft[0],\n prediction.box.topLeft[1],\n prediction.box.bottomRight[0] - prediction.box.topLeft[0],\n prediction.box.bottomRight[1] - prediction.box.topLeft[1],\n ] : 0,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }),\n tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }),\n ]);\n const detector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n const pipe = new pipeline.HandPipeline(detector, handPoseModel, config.hand.inputSize);\n const handpose = new HandPose(pipe);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handpose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const pose of res) {\n // raising hands\n const leftWrist = pose.keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = pose.keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = pose.keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push('i give up');\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push('raise left hand');\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push('raise right hand');\n\n // leaning\n const leftShoulder = pose.keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = pose.keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push(`leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}`);\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const face of res) {\n // if (face.annotations['rightCheek'] && face.annotations['leftCheek'] && (face.annotations['rightCheek'].length > 0) && (face.annotations['leftCheek'].length > 0)) {\n // gestures.push(`facing ${((face.annotations['rightCheek'][0][2] > 0) || (face.annotations['leftCheek'][0][2] < 0)) ? 'right' : 'left'}`);\n // }\n if (face.mesh && face.mesh.length > 0) {\n const eyeFacing = face.mesh[35][2] - face.mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push('facing camera');\n else gestures.push(`facing ${eyeFacing < 0 ? 'right' : 'left'}`);\n const openLeft = Math.abs(face.mesh[374][1] - face.mesh[386][1]) / Math.abs(face.mesh[443][1] - face.mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push('blink left eye');\n const openRight = Math.abs(face.mesh[145][1] - face.mesh[159][1]) / Math.abs(face.mesh[223][1] - face.mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push('blink right eye');\n const mouthOpen = Math.min(100, 500 * Math.abs(face.mesh[13][1] - face.mesh[14][1]) / Math.abs(face.mesh[10][1] - face.mesh[152][1]));\n if (mouthOpen > 10) gestures.push(`mouth ${Math.trunc(mouthOpen)}% open`);\n const chinDepth = face.mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push(`head ${chinDepth < 0 ? 'up' : 'down'}`);\n }\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const hand of res) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(hand['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push(`${closest.name} forward ${highest.name} up`);\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n _tempFramebuffers[index] = _tempFramebuffers[index]\n || _createFramebufferTexture(_width, _height);\n\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n source = _getTempFramebuffer(_currentFramebufferIndex).texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n target = _getTempFramebuffer(_currentFramebufferIndex).fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n // eslint-disable-next-line no-console\n console.log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n // const gl = outCanvas.getContext('webgl');\n const gl = false;\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx.drawImage(outCanvas, 0, 0);\n const data = tempCtx.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "import * as tf from '../dist/tfjs.esm.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n // helper function: wrapper around console output\n log(...msg) {\n // eslint-disable-next-line no-console\n if (msg && this.config.console) console.log('Human:', ...msg);\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) this.log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n this.log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n this.log('configuration:', this.config);\n this.log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n this.log('Backend not registred:', this.config.backend);\n }\n */\n\n this.log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n this.log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) this.log('warning: wasm simd support is not enabled');\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n this.log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n this.log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n this.log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n this.log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = { face: gesture.face(faceRes), body: gesture.body(poseRes), hand: gesture.hand(handRes) };\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig, sample) {\n if (!sample) sample = new ImageData(255, 255);\n // const sample = tf.zeros([1, 255, 255, 3]);\n const warmup = await this.detect(sample, userConfig);\n this.log('warmed up');\n return warmup;\n }\n}\n\nexport { Human as default };\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "import * as tf from '../dist/tfjs.esm.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n // helper function: wrapper around console output\n log(...msg) {\n // eslint-disable-next-line no-console\n if (msg && this.config.console) console.log('Human:', ...msg);\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) this.log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n this.log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n this.log('configuration:', this.config);\n this.log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n this.log('Backend not registred:', this.config.backend);\n }\n */\n\n this.log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n this.log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) this.log('warning: wasm simd support is not enabled');\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n this.log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n this.log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n this.log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n this.log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = { face: gesture.face(faceRes), body: gesture.body(poseRes), hand: gesture.hand(handRes) };\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig, sample) {\n if (!sample) sample = new ImageData(255, 255);\n // const sample = tf.zeros([1, 255, 255, 3]);\n const warmup = await this.detect(sample, userConfig);\n this.log('warmed up');\n return warmup;\n }\n}\n\nexport { Human as default };\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n console: true, // enable debugging output to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 15, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 15, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 15, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 15, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.8, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n },\n\n hand: {\n enabled: true,\n inputSize: 256, // fixed value\n skipFrames: 15, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.8, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "import * as tf from '../dist/tfjs.esm.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n // helper function: wrapper around console output\n log(...msg) {\n // eslint-disable-next-line no-console\n if (msg && this.config.console) console.log('Human:', ...msg);\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) this.log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n this.log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n this.log('configuration:', this.config);\n this.log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n this.log('Backend not registred:', this.config.backend);\n }\n */\n\n this.log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n this.log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) this.log('warning: wasm simd support is not enabled');\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n this.log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n this.log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n this.log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n this.log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = { face: gesture.face(faceRes), body: gesture.body(poseRes), hand: gesture.hand(handRes) };\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig, sample) {\n if (!sample) sample = new ImageData(255, 255);\n // const sample = tf.zeros([1, 255, 255, 3]);\n const warmup = await this.detect(sample, userConfig);\n this.log('warmed up');\n return warmup;\n }\n}\n\nexport { Human as default };\n", "async function drawGesture(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.font = ui.baseFont;\n ctx.fillStyle = ui.baseLabel;\n let i = 1;\n for (const [key, val] of Object.entries(result)) {\n if (val.length > 0) {\n const label = `${key}: ${val.join(', ')}`;\n ctx.fillStyle = 'black';\n ctx.fillText(label, 8, 2 + (i * ui.baseLineHeight));\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText(label, 6, 0 + (i * ui.baseLineHeight));\n i += 1;\n }\n }\n}\n\nasync function drawFace(result, canvas, ui, triangulation) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n for (const face of result) {\n ctx.font = ui.baseFont;\n ctx.strokeStyle = ui.baseColor;\n ctx.fillStyle = ui.baseColor;\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n if (ui.drawBoxes) {\n ctx.rect(face.box[0], face.box[1], face.box[2], face.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels = [];\n // labels.push(`${Math.trunc(100 * face.confidence)}% face`);\n if (face.genderConfidence) labels.push(`${Math.trunc(100 * face.genderConfidence)}% ${face.gender || ''}`);\n // if (face.genderConfidence) labels.push(face.gender);\n if (face.age) labels.push(`age: ${face.age || ''}`);\n if (face.iris) labels.push(`iris: ${face.iris}`);\n if (face.emotion && face.emotion.length > 0) {\n const emotion = face.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n ctx.fillStyle = ui.baseLabel;\n for (let i = 0; i < labels.length; i++) {\n ctx.fillStyle = 'black';\n ctx.fillText(labels[i], face.box[0] + face.box[2] + 9, ((i + 1) * ui.baseLineHeight) + face.box[1] + 9);\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText(labels[i], face.box[0] + face.box[2] + 8, ((i + 1) * ui.baseLineHeight) + face.box[1] + 8);\n }\n ctx.fillStyle = ui.baseColor;\n ctx.stroke();\n ctx.lineWidth = 1;\n if (face.mesh) {\n if (ui.drawPoints) {\n for (const point of face.mesh) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * point[2])}, ${127.5 - (2 * point[2])}, 255, 0.5)` : ui.baseColor;\n ctx.beginPath();\n ctx.arc(point[0], point[1], 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n if (ui.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => face.mesh[index]);\n const path = new Path2D();\n path.moveTo(points[0][0], points[0][1]);\n for (const point of points) {\n path.lineTo(point[0], point[1]);\n }\n path.closePath();\n ctx.strokeStyle = ui.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : ui.baseColor;\n ctx.stroke(path);\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : ui.baseColor;\n ctx.fill(path);\n }\n }\n // iris: array[center, left, top, right, bottom]\n if (face.annotations && face.annotations.leftEyeIris) {\n ctx.strokeStyle = ui.useDepth ? 'rgba(255, 200, 255, 0.3)' : ui.baseColor;\n ctx.beginPath();\n const sizeX = Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(face.annotations.leftEyeIris[4][1] - face.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(face.annotations.leftEyeIris[0][0], face.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? 'rgba(255, 255, 200, 0.3)' : ui.baseColor;\n ctx.fill();\n }\n }\n if (face.annotations && face.annotations.rightEyeIris) {\n ctx.strokeStyle = ui.useDepth ? 'rgba(255, 200, 255, 0.3)' : ui.baseColor;\n ctx.beginPath();\n const sizeX = Math.abs(face.annotations.rightEyeIris[3][0] - face.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(face.annotations.rightEyeIris[0][0], face.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? 'rgba(255, 255, 200, 0.3)' : ui.baseColor;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose = [];\nasync function drawBody(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.lineJoin = 'round';\n for (const i in result) {\n if (!lastDrawnPose[i] && ui.buffered) lastDrawnPose[i] = { ...result[i] };\n ctx.fillStyle = ui.baseColor;\n ctx.strokeStyle = ui.baseColor;\n ctx.font = ui.baseFont;\n ctx.lineWidth = ui.baseLineWidth;\n if (ui.drawPoints) {\n for (const pt in result[i].keypoints) {\n ctx.beginPath();\n if (ui.buffered) {\n lastDrawnPose[i].keypoints[pt].position.x = (lastDrawnPose[i].keypoints[pt].position.x + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt].position.y = (lastDrawnPose[i].keypoints[pt].position.y + result[i].keypoints[pt].position.y) / 2;\n ctx.arc(lastDrawnPose[i].keypoints[pt].position.x, lastDrawnPose[i].keypoints[pt].position.y, 2, 0, 2 * Math.PI);\n } else {\n ctx.arc(result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y, 2, 0, 2 * Math.PI);\n }\n ctx.fill();\n }\n }\n if (ui.drawPolygons) {\n const path = new Path2D();\n let part;\n // torso\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n path.lineTo(part.position.x, part.position.y);\n // legs\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n path.lineTo(part.position.x, part.position.y);\n // arms\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n path.lineTo(part.position.x, part.position.y);\n // arms\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n path.lineTo(part.position.x, part.position.y);\n // draw all\n ctx.stroke(path);\n }\n }\n}\n\nasync function drawHand(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.lineJoin = 'round';\n for (const hand of result) {\n ctx.font = ui.baseFont;\n ctx.lineWidth = ui.baseLineWidth;\n if (ui.drawBoxes) {\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n ctx.strokeStyle = ui.baseColor;\n ctx.fillStyle = ui.baseColor;\n ctx.rect(hand.box[0], hand.box[1], hand.box[2], hand.box[3]);\n ctx.fillStyle = 'black';\n ctx.fillText('hand', hand.box[0] + 3, 1 + hand.box[1] + ui.baseLineHeight, hand.box[2]);\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText('hand', hand.box[0] + 2, 0 + hand.box[1] + ui.baseLineHeight, hand.box[2]);\n ctx.stroke();\n }\n if (ui.drawPoints) {\n if (hand.landmarks && hand.landmarks.length > 0) {\n for (const point of hand.landmarks) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * point[2])}, ${127.5 - (2 * point[2])}, 255, 0.5)` : ui.baseColor;\n ctx.beginPath();\n ctx.arc(point[0], point[1], 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n }\n if (ui.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n ctx.strokeStyle = ui.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : ui.baseColor;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(hand.annotations.indexFinger);\n addPart(hand.annotations.middleFinger);\n addPart(hand.annotations.ringFinger);\n addPart(hand.annotations.pinky);\n addPart(hand.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport default {\n face: drawFace,\n body: drawBody,\n hand: drawHand,\n gesture: drawGesture,\n};\n", "let instance = 0;\nlet CSScreated = false;\n\nlet theme = {\n background: 'darkslategray',\n hover: 'lightgray',\n itemBackground: 'black',\n itemColor: 'white',\n buttonBackground: 'lightblue',\n buttonHover: 'lightgreen',\n checkboxOn: 'lightgreen',\n checkboxOff: 'lightcoral',\n rangeBackground: 'lightblue',\n rangeLabel: 'white',\n chartColor: 'lightblue',\n};\n\nfunction createCSS() {\n if (CSScreated) return;\n const css = `\n :root { --rounded: 0.2rem; }\n .menu { position: absolute; top: 0rem; right: 0; width: fit-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;\n box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; }\n\n .menu:hover { box-shadow: 0 0 8px ${theme.hover}; }\n .menu-container { display: block; max-height: 100vh; }\n .menu-container-fadeout { max-height: 0; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-container-fadein { max-height: 100vh; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-item { display: flex; white-space: nowrap; padding: 0.2rem; cursor: default; width: 100%; }\n .menu-title { cursor: pointer; }\n .menu-hr { margin: 0.2rem; border: 1px solid rgba(0, 0, 0, 0.5) }\n .menu-label { padding: 0; font-weight: 800; }\n\n .menu-list { margin-right: 0.8rem; }\n select:focus { outline: none; }\n .menu-list-item { background: ${theme.itemBackground}; color: ${theme.itemColor}; border: none; padding: 0.2rem; font-family: inherit;\n font-variant: inherit; border-radius: var(--rounded); font-weight: 800; }\n\n .menu-chart-title { padding: 0; font-size: 0.8rem; font-weight: 800; align-items: center}\n .menu-chart-canvas { background: transparent; margin: 0.2rem 0 0.2rem 0.6rem; }\n \n .menu-button { border: 0; background: ${theme.buttonBackground}; width: -webkit-fill-available; padding: 8px; margin: 8px; cursor: pointer; box-shadow: 4px 4px 4px 0 dimgrey;\n border-radius: var(--rounded); justify-content: center; font-family: inherit; font-variant: inherit; font-size: 1rem; font-weight: 800; }\n .menu-button:hover { background: ${theme.buttonHover}; box-shadow: 4px 4px 4px 0 black; }\n .menu-button:focus { outline: none; }\n\n .menu-checkbox { width: 2.8rem; height: 1rem; background: ${theme.itemBackground}; margin: 0.5rem 0.5rem 0 0; position: relative; border-radius: var(--rounded); }\n .menu-checkbox:after { content: 'OFF'; color: ${theme.checkboxOff}; position: absolute; right: 0.2rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox:before { content: 'ON'; color: ${theme.checkboxOn}; position: absolute; left: 0.3rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox-label { width: 1.3rem; height: 0.8rem; cursor: pointer; position: absolute; top: 0.1rem; left: 0.1rem; z-index: 1; background: ${theme.checkboxOff};\n border-radius: var(--rounded); transition: left 0.6s ease; }\n\n input[type=checkbox] { visibility: hidden; }\n input[type=checkbox]:checked + label { left: 1.4rem; background: ${theme.checkboxOn}; }\n\n .menu-range { margin: 0.2rem 0.5rem 0 0; width: 3.5rem; background: transparent; color: ${theme.rangeBackground}; }\n .menu-range:before { color: ${theme.rangeLabel}; margin: 0 0.4rem 0 0; font-weight: 800; font-size: 0.6rem; position: relative; top: 0.3rem; content: attr(value); }\n\n input[type=range] { -webkit-appearance: none; }\n input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-moz-range-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-webkit-slider-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n input[type=range]::-moz-range-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n\n .svg-background { fill:darkslategrey; cursor:pointer; opacity: 0.6; }\n .svg-foreground { fill:white; cursor:pointer; opacity: 0.8; }\n `;\n const el = document.createElement('style');\n el.innerHTML = css;\n document.getElementsByTagName('head')[0].appendChild(el);\n CSScreated = true;\n}\n\nclass Menu {\n constructor(parent, title, position, userTheme) {\n if (userTheme) theme = { ...theme, ...userTheme };\n createCSS();\n this.createMenu(parent, title, position);\n this.id = 0;\n this.instance = instance;\n instance++;\n this._maxFPS = 0;\n this.hidden = 0;\n }\n\n createMenu(parent, title = '', position = { top: null, left: null, bottom: null, right: null }) {\n this.menu = document.createElement('div');\n this.menu.id = `menu-${instance}`;\n this.menu.className = 'menu';\n if (position) {\n if (position.top) this.menu.style.top = position.top;\n if (position.bottom) this.menu.style.bottom = position.bottom;\n if (position.left) this.menu.style.left = position.left;\n if (position.right) this.menu.style.right = position.right;\n }\n\n this.container = document.createElement('div');\n this.container.id = `menu-container-${instance}`;\n this.container.className = 'menu-container menu-container-fadein';\n\n // set menu title with pulldown arrow\n const elTitle = document.createElement('div');\n elTitle.className = 'menu-title';\n elTitle.id = `menu-title-${instance}`;\n const svg = ``;\n if (title) elTitle.innerHTML = `${title}${svg}`;\n this.menu.appendChild(elTitle);\n elTitle.addEventListener('click', () => {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n this.menu.style.borderStyle = this.container.classList.contains('menu-container-fadeout') ? 'none' : 'solid';\n });\n\n this.menu.appendChild(this.container);\n if (typeof parent === 'object') parent.appendChild(this.menu);\n else document.getElementById(parent).appendChild(this.menu);\n }\n\n get newID() {\n this.id++;\n return `menu-${this.instance}-${this.id}`;\n }\n\n get ID() {\n return `menu-${this.instance}-${this.id}`;\n }\n\n get width() {\n return this.menu.offsetWidth;\n }\n\n get height() {\n return this.menu.offsetHeight;\n }\n\n hide() {\n if (this.container.classList.contains('menu-container-fadein')) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n }\n }\n\n visible() {\n return (this.container.classList.contains('menu-container-fadein'));\n }\n\n toggle(evt) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n if (this.container.classList.contains('menu-container-fadein') && evt) {\n const x = evt.x || (evt.touches && evt.touches[0] ? evt.touches[0].pageX : null);\n // const y = evt.y || (evt.touches && evt.touches[0] ? evt.touches[0].pageY : null);\n if (x) this.menu.style.left = `${x - (this.menu.offsetWidth / 2)}px`;\n // if (y) this.menu.style.top = '5.5rem'; // `${evt.y + 55}px`;\n if (this.menu.offsetLeft < 0) this.menu.style.left = 0;\n if ((this.menu.offsetLeft + this.menu.offsetWidth) > window.innerWidth) {\n this.menu.style.left = null;\n this.menu.style.right = 0;\n }\n this.menu.style.borderStyle = 'solid';\n } else {\n this.menu.style.borderStyle = 'none';\n }\n }\n\n addTitle(title) {\n const el = document.createElement('div');\n el.className = 'menu-title';\n el.id = this.newID;\n el.innerHTML = title;\n this.menu.appendChild(el);\n el.addEventListener('click', () => {\n this.hidden = !this.hidden;\n const all = document.getElementsByClassName('menu');\n for (const item of all) {\n item.style.display = this.hidden ? 'none' : 'block';\n }\n });\n return el;\n }\n\n addLabel(title) {\n const el = document.createElement('div');\n el.className = 'menu-item menu-label';\n el.id = this.newID;\n el.innerHTML = title;\n this.container.appendChild(el);\n return el;\n }\n\n addBool(title, object, variable, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = evt.target.checked;\n if (callback) callback(evt.target.checked);\n });\n return el;\n }\n\n async addList(title, items, selected, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n let options = '';\n for (const item of items) {\n const def = item === selected ? 'selected' : '';\n options += ``;\n }\n el.innerHTML = `${title}`;\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n if (callback) callback(items[evt.target.selectedIndex]);\n });\n return el;\n }\n\n addRange(title, object, variable, min, max, step, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = parseInt(evt.target.value) === parseFloat(evt.target.value) ? parseInt(evt.target.value) : parseFloat(evt.target.value);\n evt.target.setAttribute('value', evt.target.value);\n if (callback) callback(evt.target.value);\n });\n el.input = el.children[0];\n return el;\n }\n\n addHTML(html) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = this.newID;\n if (html) el.innerHTML = html;\n this.container.appendChild(el);\n return el;\n }\n\n addButton(titleOn, titleOff, callback) {\n const el = document.createElement('button');\n el.className = 'menu-item menu-button';\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n el.type = 'button';\n el.id = this.newID;\n el.innerText = titleOn;\n this.container.appendChild(el);\n el.addEventListener('click', () => {\n if (el.innerText === titleOn) el.innerText = titleOff;\n else el.innerText = titleOn;\n if (callback) callback(el.innerText !== titleOn);\n });\n return el;\n }\n\n addValue(title, val, suffix = '') {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = `menu-val-${title}`;\n el.innerText = `${title}: ${val}${suffix}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n updateValue(title, val, suffix = '') {\n const el = document.getElementById(`menu-val-${title}`);\n if (el) el.innerText = `${title}: ${val}${suffix}`;\n else this.addValue(title, val);\n }\n\n addChart(title, id, width = 150, height = 40, color) {\n if (color) theme.chartColor = color;\n const el = document.createElement('div');\n el.className = 'menu-item menu-chart-title';\n el.id = this.newID;\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async updateChart(id, values) {\n if (!values || (values.length === 0)) return;\n const canvas = document.getElementById(`menu-canvas-${id}`);\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const width = canvas.width / values.length;\n const max = 1 + Math.max(...values);\n const height = canvas.height / max;\n for (const i in values) {\n const gradient = ctx.createLinearGradient(0, (max - values[i]) * height, 0, 0);\n gradient.addColorStop(0.1, theme.chartColor);\n gradient.addColorStop(0.4, theme.background);\n ctx.fillStyle = gradient;\n ctx.fillRect(i * width, 0, width - 4, canvas.height);\n ctx.fillStyle = theme.background;\n ctx.font = `${width / 1.5}px \"Segoe UI\"`;\n ctx.fillText(Math.round(values[i]), i * width + 1, canvas.height - 1, width - 1);\n }\n }\n}\n\nexport default Menu;\n", "/* eslint-disable max-len */\n\n// based on: https://github.com/munrocket/gl-bench\n\nconst UICSS = `\n #gl-bench { position: absolute; right: 1rem; bottom: 1rem; z-index:1000; -webkit-user-select: none; -moz-user-select: none; user-select: none; }\n #gl-bench div { position: relative; display: block; margin: 4px; padding: 0 7px 0 10px; background: darkslategray; border-radius: 0.2rem; cursor: pointer; opacity: 0.9; }\n #gl-bench svg { height: 60px; margin: 0 0px 0px 4px; }\n #gl-bench text { font-size: 16px; font-family: 'Lato', 'Segoe UI'; dominant-baseline: middle; text-anchor: middle; }\n #gl-bench .gl-mem { font-size: 12px; fill: white; }\n #gl-bench .gl-fps { font-size: 13px; fill: white; }\n #gl-bench line { stroke-width: 5; stroke: white; stroke-linecap: round; }\n #gl-bench polyline { fill: none; stroke: white; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3.5; }\n #gl-bench rect { fill: black; }\n #gl-bench .opacity { stroke: black; }\n `;\n\nconst UISVG = `\n \n
\n
\n
\n
\n `;\n\nclass GLBench {\n /** GLBench constructor\n * @param { WebGLRenderingContext | WebGL2RenderingContext } gl context\n * @param { Object | undefined } settings additional settings\n */\n constructor(gl, settings = {}) {\n this.css = UICSS;\n this.svg = UISVG;\n this.paramLogger = () => {};\n this.chartLogger = () => {};\n this.chartLen = 20;\n this.chartHz = 20;\n\n this.names = [];\n this.cpuAccums = [];\n this.gpuAccums = [];\n this.activeAccums = [];\n this.chart = new Array(this.chartLen);\n this.now = () => ((performance && performance.now) ? performance.now() : Date.now());\n this.updateUI = () => {\n [].forEach.call(this.nodes['gl-gpu-svg'], (node) => node.style.display = this.trackGPU ? 'inline' : 'none');\n };\n\n Object.assign(this, settings);\n this.detected = 0;\n this.finished = [];\n this.isFramebuffer = 0;\n this.frameId = 0;\n\n // 120hz device detection\n let rafId; let n = 0; let\n t0;\n const loop = (t) => {\n if (++n < 20) {\n rafId = requestAnimationFrame(loop);\n } else {\n this.detected = Math.ceil(1e3 * n / (t - t0) / 70);\n cancelAnimationFrame(rafId);\n }\n if (!t0) t0 = t;\n };\n requestAnimationFrame(loop);\n\n // attach gpu profilers\n if (gl) {\n const glFinish = async (t, activeAccums) => Promise.resolve(setTimeout(() => {\n gl.getError();\n const dt = this.now() - t;\n activeAccums.forEach((active, i) => {\n if (active) this.gpuAccums[i] += dt;\n });\n }, 0));\n\n const addProfiler = (fn, self, target) => {\n const t = self.now();\n // eslint-disable-next-line prefer-rest-params\n fn.apply(target, arguments);\n if (self.trackGPU) self.finished.push(glFinish(t, self.activeAccums.slice(0)));\n };\n\n /* ['drawArrays', 'drawElements', 'drawArraysInstanced', 'drawBuffers', 'drawElementsInstanced', 'drawRangeElements'].forEach((fn) => {\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n }\n });\n */\n const fn = 'drawElements';\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n } else {\n // eslint-disable-next-line no-console\n console.log('bench: cannot attach to webgl function');\n }\n\n /*\n gl.getExtension = ((fn, self) => {\n // eslint-disable-next-line prefer-rest-params\n const ext = fn.apply(gl, arguments);\n if (ext) {\n ['drawElementsInstancedANGLE', 'drawBuffersWEBGL'].forEach((fn2) => {\n if (ext[fn2]) {\n ext[fn2] = addProfiler(ext[fn2], self, ext);\n }\n });\n }\n return ext;\n })(gl.getExtension, this);\n */\n }\n\n // init ui and ui loggers\n if (!this.withoutUI) {\n if (!this.dom) this.dom = document.body;\n const elm = document.createElement('div');\n elm.id = 'gl-bench';\n this.dom.appendChild(elm);\n this.dom.insertAdjacentHTML('afterbegin', '');\n this.dom = elm;\n this.dom.addEventListener('click', () => {\n this.trackGPU = !this.trackGPU;\n this.updateUI();\n });\n\n this.paramLogger = ((logger, dom, names) => {\n const classes = ['gl-cpu', 'gl-gpu', 'gl-mem', 'gl-fps', 'gl-gpu-svg', 'gl-chart'];\n const nodes = { ...classes };\n classes.forEach((c) => nodes[c] = dom.getElementsByClassName(c));\n this.nodes = nodes;\n return (i, cpu, gpu, mem, fps, totalTime, frameId) => {\n nodes['gl-cpu'][i].style.strokeDasharray = (cpu * 0.27).toFixed(0) + ' 100';\n nodes['gl-gpu'][i].style.strokeDasharray = (gpu * 0.27).toFixed(0) + ' 100';\n // eslint-disable-next-line no-nested-ternary\n nodes['gl-mem'][i].innerHTML = names[i] ? names[i] : (mem ? 'mem: ' + mem.toFixed(0) + 'mb' : '');\n nodes['gl-fps'][i].innerHTML = 'FPS: ' + fps.toFixed(1);\n logger(names[i], cpu, gpu, mem, fps, totalTime, frameId);\n };\n })(this.paramLogger, this.dom, this.names);\n\n this.chartLogger = ((logger, dom) => {\n const nodes = { 'gl-chart': dom.getElementsByClassName('gl-chart') };\n return (i, chart, circularId) => {\n let points = '';\n const len = chart.length;\n for (let j = 0; j < len; j++) {\n const id = (circularId + j + 1) % len;\n if (chart[id] !== undefined) points = points + ' ' + (55 * j / (len - 1)).toFixed(1) + ',' + (45 - chart[id] * 22 / 60 / this.detected).toFixed(1);\n }\n nodes['gl-chart'][i].setAttribute('points', points);\n logger(this.names[i], chart, circularId);\n };\n })(this.chartLogger, this.dom);\n }\n }\n\n /**\n * Explicit UI add\n * @param { string | undefined } name\n */\n addUI(name) {\n if (this.names.indexOf(name) === -1) {\n this.names.push(name);\n if (this.dom) {\n this.dom.insertAdjacentHTML('beforeend', this.svg);\n this.updateUI();\n }\n this.cpuAccums.push(0);\n this.gpuAccums.push(0);\n this.activeAccums.push(false);\n }\n }\n\n /**\n * Increase frameID\n * @param { number | undefined } now\n */\n nextFrame(now) {\n this.frameId++;\n const t = now || this.now();\n\n // params\n if (this.frameId <= 1) {\n this.paramFrame = this.frameId;\n this.paramTime = t;\n } else {\n const duration = t - this.paramTime;\n if (duration >= 1e3) {\n const frameCount = this.frameId - this.paramFrame;\n const fps = frameCount / duration * 1e3;\n for (let i = 0; i < this.names.length; i++) {\n const cpu = this.cpuAccums[i] / duration * 100;\n const gpu = this.gpuAccums[i] / duration * 100;\n const mem = (performance && performance.memory) ? performance.memory.usedJSHeapSize / (1 << 20) : 0;\n this.paramLogger(i, cpu, gpu, mem, fps, duration, frameCount);\n this.cpuAccums[i] = 0;\n Promise.all(this.finished).then(() => {\n this.gpuAccums[i] = 0;\n this.finished = [];\n });\n }\n this.paramFrame = this.frameId;\n this.paramTime = t;\n }\n }\n\n // chart\n if (!this.detected || !this.chartFrame) {\n this.chartFrame = this.frameId;\n this.chartTime = t;\n this.circularId = 0;\n } else {\n const timespan = t - this.chartTime;\n let hz = this.chartHz * timespan / 1e3;\n while (--hz > 0 && this.detected) {\n const frameCount = this.frameId - this.chartFrame;\n const fps = frameCount / timespan * 1e3;\n this.chart[this.circularId % this.chartLen] = fps;\n for (let i = 0; i < this.names.length; i++) this.chartLogger(i, this.chart, this.circularId);\n this.circularId++;\n this.chartFrame = this.frameId;\n this.chartTime = t;\n }\n }\n }\n\n /**\n * Begin named measurement\n * @param { string | undefined } name\n */\n begin(name) {\n this.updateAccums(name);\n }\n\n /**\n * End named measure\n * @param { string | undefined } name\n */\n end(name) {\n this.updateAccums(name);\n }\n\n updateAccums(name) {\n let nameId = this.names.indexOf(name);\n if (nameId === -1) {\n nameId = this.names.length;\n this.addUI(name);\n }\n\n const t = this.now();\n const dt = t - this.t0;\n for (let i = 0; i < nameId + 1; i++) {\n if (this.activeAccums[i]) this.cpuAccums[i] += dt;\n }\n this.activeAccums[nameId] = !this.activeAccums[nameId];\n this.t0 = t;\n }\n}\n\nexport default GLBench;\n", "import Human from '../dist/human.esm.js';\nimport draw from './draw.js';\nimport Menu from './menu.js';\nimport GLBench from './gl-bench.js';\n\nconst userConfig = {}; // add any user configuration overrides\n\nconst human = new Human(userConfig);\n\n// ui options\nconst ui = {\n baseColor: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n baseBackground: 'rgba(50, 50, 50, 1)', // 'grey'\n baseLabel: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n baseFontProto: 'small-caps {size} \"Segoe UI\"',\n baseLineWidth: 12,\n crop: true,\n columns: 2,\n busy: false,\n facing: true,\n useWorker: false,\n worker: 'demo/worker.js',\n samples: ['../assets/sample6.jpg', '../assets/sample1.jpg', '../assets/sample4.jpg', '../assets/sample5.jpg', '../assets/sample3.jpg', '../assets/sample2.jpg'],\n compare: '../assets/sample-me.jpg',\n drawBoxes: true,\n drawPoints: false,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n console: true,\n maxFPSframes: 10,\n modelsPreload: true,\n modelsWarmup: true,\n menuWidth: 0,\n menuHeight: 0,\n camera: {},\n detectFPS: [],\n drawFPS: [],\n buffered: false,\n drawThread: null,\n detectThread: null,\n framesDraw: 0,\n framesDetect: 0,\n bench: false,\n};\n\n// global variables\nconst menu = {};\nlet worker;\nlet bench;\nlet lastDetectedResult = {};\n\n// helper function: translates json to human readable string\nfunction str(...msg) {\n if (!Array.isArray(msg)) return msg;\n let line = '';\n for (const entry of msg) {\n if (typeof entry === 'object') line += JSON.stringify(entry).replace(/{|}|\"|\\[|\\]/g, '').replace(/,/g, ', ');\n else line += entry;\n }\n return line;\n}\n\n// helper function: wrapper around console output\nconst log = (...msg) => {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (ui.console) console.log(ts, ...msg);\n};\n\nconst status = (msg) => {\n // eslint-disable-next-line no-console\n document.getElementById('status').innerText = msg;\n};\n\nlet original;\nasync function calcSimmilariry(result) {\n document.getElementById('compare-container').style.display = human.config.face.embedding.enabled ? 'block' : 'none';\n if (!human.config.face.embedding.enabled) return;\n if ((result?.face?.length > 0) && (result?.face[0].embedding?.length !== 192)) return;\n if (!original) {\n original = result;\n document.getElementById('compare-canvas').getContext('2d').drawImage(original.canvas, 0, 0, 200, 200);\n }\n const simmilarity = human.simmilarity(original?.face[0]?.embedding, result?.face[0]?.embedding);\n document.getElementById('simmilarity').innerText = `simmilarity: ${Math.trunc(1000 * simmilarity) / 10}%`;\n}\n\n// draws processed results and starts processing of a next frame\nlet lastDraw = performance.now();\nasync function drawResults(input) {\n const result = lastDetectedResult;\n const canvas = document.getElementById('canvas');\n\n // update draw fps data\n ui.drawFPS.push(1000 / (performance.now() - lastDraw));\n if (ui.drawFPS.length > ui.maxFPSframes) ui.drawFPS.shift();\n lastDraw = performance.now();\n\n // enable for continous performance monitoring\n // console.log(result.performance);\n\n // draw fps chart\n await menu.process.updateChart('FPS', ui.detectFPS);\n\n // get updated canvas\n if (ui.buffered || !result.canvas) result.canvas = await human.image(input, userConfig);\n\n // draw image from video\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = ui.baseBackground;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (result.canvas) {\n if (result.canvas.width !== canvas.width) canvas.width = result.canvas.width;\n if (result.canvas.height !== canvas.height) canvas.height = result.canvas.height;\n ctx.drawImage(result.canvas, 0, 0, result.canvas.width, result.canvas.height, 0, 0, result.canvas.width, result.canvas.height);\n } else {\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n }\n\n // draw all results\n await draw.face(result.face, canvas, ui, human.facemesh.triangulation);\n await draw.body(result.body, canvas, ui);\n await draw.hand(result.hand, canvas, ui);\n await draw.gesture(result.gesture, canvas, ui);\n await calcSimmilariry(result);\n\n // update log\n const engine = human.tf.engine();\n const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';\n const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} | tensors: ${engine.state.numTensors.toLocaleString()}`;\n const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';\n const avgDetect = Math.trunc(10 * ui.detectFPS.reduce((a, b) => a + b, 0) / ui.detectFPS.length) / 10;\n const avgDraw = Math.trunc(10 * ui.drawFPS.reduce((a, b) => a + b, 0) / ui.drawFPS.length) / 10;\n const warning = (ui.detectFPS.length > 5) && (avgDetect < 5) ? 'warning: your performance is low: try switching to higher performance backend, lowering resolution or disabling some models' : '';\n document.getElementById('log').innerText = `\n video: ${ui.camera.name} | facing: ${ui.camera.facing} | screen: ${window.innerWidth} x ${window.innerHeight} camera: ${ui.camera.width} x ${ui.camera.height} ${processing}\n backend: ${human.tf.getBackend()} | ${memory}\n performance: ${str(result.performance)}ms FPS process:${avgDetect} refresh:${avgDraw}\n ${warning}\n `;\n\n ui.framesDraw++;\n ui.lastFrame = performance.now();\n // if buffered, immediate loop but limit frame rate although it's going to run slower as JS is singlethreaded\n if (ui.buffered) {\n ui.drawThread = requestAnimationFrame(() => drawResults(input, canvas));\n } else if (!ui.buffered && ui.drawThread) {\n log('stopping buffered refresh');\n cancelAnimationFrame(ui.drawThread);\n ui.drawThread = null;\n }\n}\n\n// setup webcam\nasync function setupCamera() {\n if (ui.busy) return null;\n ui.busy = true;\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n const output = document.getElementById('log');\n const live = video.srcObject ? ((video.srcObject.getVideoTracks()[0].readyState === 'live') && (video.readyState > 2) && (!video.paused)) : false;\n let msg = '';\n status('setting up camera');\n // setup webcam. note that navigator.mediaDevices requires that page is accessed via https\n if (!navigator.mediaDevices) {\n msg = 'camera access not supported';\n output.innerText += `\\n${msg}`;\n log(msg);\n status(msg);\n ui.busy = false;\n return msg;\n }\n let stream;\n const constraints = {\n audio: false,\n video: { facingMode: ui.facing ? 'user' : 'environment', resizeMode: ui.crop ? 'crop-and-scale' : 'none' },\n };\n if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth };\n else constraints.video.height = { ideal: (window.innerHeight - document.getElementById('menubar').offsetHeight) };\n try {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n if (err.name === 'PermissionDeniedError' || err.name === 'NotAllowedError') msg = 'camera permission denied';\n else if (err.name === 'SourceUnavailableError') msg = 'camera not available';\n else msg = `camera error: ${err.message || err}`;\n output.innerText += `\\n${msg}`;\n status(msg);\n log('camera error:', err);\n ui.busy = false;\n return msg;\n }\n if (stream) video.srcObject = stream;\n else {\n ui.busy = false;\n return 'camera stream empty';\n }\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n // log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track);\n ui.camera = { name: track.label?.toLowerCase(), width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' };\n return new Promise((resolve) => {\n video.onloadeddata = async () => {\n video.width = video.videoWidth;\n video.height = video.videoHeight;\n canvas.width = video.width;\n canvas.height = video.height;\n canvas.style.width = canvas.width > canvas.height ? '100vw' : '';\n canvas.style.height = canvas.width > canvas.height ? '' : '100vh';\n ui.menuWidth.input.setAttribute('value', video.width);\n ui.menuHeight.input.setAttribute('value', video.height);\n // silly font resizing for paint-on-canvas since viewport can be zoomed\n const size = Math.trunc(window.devicePixelRatio * (8 + (4 * canvas.width / window.innerWidth)));\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = size + 4;\n if (live) video.play();\n // eslint-disable-next-line no-use-before-define\n if (live && !ui.detectThread) runHumanDetect(video, canvas);\n ui.busy = false;\n // do once more because onresize events can be delayed or skipped\n // if (video.width > window.innerWidth) await setupCamera();\n status('');\n resolve();\n };\n });\n}\n\nfunction initPerfMonitor() {\n if (!bench) {\n const gl = null;\n // cosnt gl = human.tf.engine().backend.gpgpu.gl;\n // if (!gl) log('bench cannot get tensorflow webgl context');\n bench = new GLBench(gl, {\n trackGPU: false, // this is really slow\n chartHz: 20,\n chartLen: 20,\n });\n bench.begin();\n }\n}\n\n// wrapper for worker.postmessage that creates worker if one does not exist\nfunction webWorker(input, image, canvas, timestamp) {\n if (!worker) {\n // create new webworker and add event handler only once\n log('creating worker thread');\n worker = new Worker(ui.worker, { type: 'module' });\n // after receiving message from webworker, parse&draw results and send new frame for processing\n worker.addEventListener('message', (msg) => {\n if (msg.data.result.performance && msg.data.result.performance.total) ui.detectFPS.push(1000 / msg.data.result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n lastDetectedResult = msg.data.result;\n ui.framesDetect++;\n if (!ui.drawThread) drawResults(input);\n // eslint-disable-next-line no-use-before-define\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n });\n }\n // pass image data as arraybuffer to worker by reference to avoid copy\n worker.postMessage({ image: image.data.buffer, width: canvas.width, height: canvas.height, userConfig }, [image.data.buffer]);\n}\n\n// main processing function when input is webcam, can use direct invocation or web worker\nfunction runHumanDetect(input, canvas, timestamp) {\n // if live video\n const live = input.srcObject && (input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState > 2) && (!input.paused);\n if (!live && input.srcObject) {\n // stop ui refresh\n if (ui.drawThread) cancelAnimationFrame(ui.drawThread);\n if (ui.detectThread) cancelAnimationFrame(ui.detectThread);\n ui.drawThread = null;\n ui.detectThread = null;\n // if we want to continue and camera not ready, retry in 0.5sec, else just give up\n if (input.paused) log('camera paused');\n else if ((input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState <= 2)) setTimeout(() => runHumanDetect(input, canvas), 500);\n else log(`camera not ready: track state: ${input.srcObject?.getVideoTracks()[0].readyState} stream state: ${input.readyState}`);\n clearTimeout(ui.drawThread);\n ui.drawThread = null;\n log('frame statistics: process:', ui.framesDetect, 'refresh:', ui.framesDraw);\n return;\n }\n status('');\n if (ui.useWorker) {\n // get image data from video as we cannot send html objects to webworker\n const offscreen = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(canvas.width, canvas.height) : document.createElement('canvas');\n offscreen.width = canvas.width;\n offscreen.height = canvas.height;\n const ctx = offscreen.getContext('2d');\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n const data = ctx.getImageData(0, 0, canvas.width, canvas.height);\n // perform detection in worker\n webWorker(input, data, canvas, userConfig, timestamp);\n } else {\n human.detect(input, userConfig).then((result) => {\n if (result.performance && result.performance.total) ui.detectFPS.push(1000 / result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n if (result.error) {\n log(result.error);\n document.getElementById('log').innerText += `\\nHuman error: ${result.error}`;\n } else {\n lastDetectedResult = result;\n if (!ui.drawThread) drawResults(input);\n ui.framesDetect++;\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n }\n });\n }\n}\n\n// main processing function when input is image, can use direct invocation or web worker\nasync function processImage(input) {\n return new Promise((resolve) => {\n const image = new Image();\n image.onload = async () => {\n log('Processing image:', image.src);\n const canvas = document.getElementById('canvas');\n image.width = image.naturalWidth;\n image.height = image.naturalHeight;\n canvas.width = human.config.filter.width && human.config.filter.width > 0 ? human.config.filter.width : image.naturalWidth;\n canvas.height = human.config.filter.height && human.config.filter.height > 0 ? human.config.filter.height : image.naturalHeight;\n const result = await human.detect(image, userConfig);\n lastDetectedResult = result;\n await drawResults(image);\n const thumb = document.createElement('canvas');\n thumb.className = 'thumbnail';\n thumb.width = window.innerWidth / (ui.columns + 0.1);\n thumb.height = canvas.height / (window.innerWidth / thumb.width);\n const ctx = thumb.getContext('2d');\n ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, thumb.width, thumb.height);\n document.getElementById('samples-container').appendChild(thumb);\n image.src = '';\n resolve(true);\n };\n image.src = input;\n });\n}\n\n// just initialize everything and call main function\nasync function detectVideo() {\n userConfig.videoOptimized = true;\n document.getElementById('samples-container').style.display = 'none';\n document.getElementById('canvas').style.display = 'block';\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n if ((video.srcObject !== null) && !video.paused) {\n document.getElementById('play').style.display = 'block';\n document.getElementById('btnStart').className = 'button button-start';\n document.getElementById('btnStart').innerHTML = 'start
video';\n status('paused');\n video.pause();\n } else {\n const cameraError = await setupCamera();\n if (!cameraError) {\n document.getElementById('play').style.display = 'none';\n for (const m of Object.values(menu)) m.hide();\n status('');\n document.getElementById('btnStart').className = 'button button-stop';\n document.getElementById('btnStart').innerHTML = 'pause
video';\n await video.play();\n if (!ui.detectThread) runHumanDetect(video, canvas);\n } else {\n status(cameraError);\n }\n }\n}\n\n// just initialize everything and call main function\nasync function detectSampleImages() {\n document.getElementById('play').style.display = 'none';\n userConfig.videoOptimized = false;\n const size = Math.trunc(window.devicePixelRatio * (8 + (4 * ui.columns)));\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = size + 2;\n document.getElementById('canvas').style.display = 'none';\n document.getElementById('samples-container').style.display = 'block';\n log('Running detection of sample images');\n status('processing images');\n document.getElementById('samples-container').innerHTML = '';\n for (const image of ui.samples) await processImage(image);\n status('');\n}\n\nfunction setupMenu() {\n let x = [];\n if (window.innerWidth > 800) {\n // initial position of menu items, later it's calculated based on mouse coordinates\n x = [`${document.getElementById('btnDisplay').offsetLeft - 50}px`, `${document.getElementById('btnImage').offsetLeft - 50}px`, `${document.getElementById('btnProcess').offsetLeft - 50}px`, `${document.getElementById('btnModel').offsetLeft - 50}px`];\n } else {\n // absolute minimum spacing for menus\n x = ['0rem', '11rem', '21.1rem', '33rem'];\n }\n\n menu.display = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[0] });\n menu.display.addBool('perf monitor', ui, 'bench', (val) => ui.bench = val);\n menu.display.addBool('buffered output', ui, 'buffered', (val) => ui.buffered = val);\n menu.display.addBool('crop & scale', ui, 'crop', () => setupCamera());\n menu.display.addBool('camera facing', ui, 'facing', () => setupCamera());\n menu.display.addHTML('
');\n menu.display.addBool('use 3D depth', ui, 'useDepth');\n menu.display.addBool('draw boxes', ui, 'drawBoxes');\n menu.display.addBool('draw polygons', ui, 'drawPolygons');\n menu.display.addBool('Fill Polygons', ui, 'fillPolygons');\n menu.display.addBool('draw points', ui, 'drawPoints');\n\n menu.image = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[1] });\n menu.image.addBool('enabled', human.config.filter, 'enabled');\n ui.menuWidth = menu.image.addRange('image width', human.config.filter, 'width', 0, 3840, 10, (val) => human.config.filter.width = parseInt(val));\n ui.menuHeight = menu.image.addRange('image height', human.config.filter, 'height', 0, 2160, 10, (val) => human.config.filter.height = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addRange('brightness', human.config.filter, 'brightness', -1.0, 1.0, 0.05, (val) => human.config.filter.brightness = parseFloat(val));\n menu.image.addRange('contrast', human.config.filter, 'contrast', -1.0, 1.0, 0.05, (val) => human.config.filter.contrast = parseFloat(val));\n menu.image.addRange('sharpness', human.config.filter, 'sharpness', 0, 1.0, 0.05, (val) => human.config.filter.sharpness = parseFloat(val));\n menu.image.addRange('blur', human.config.filter, 'blur', 0, 20, 1, (val) => human.config.filter.blur = parseInt(val));\n menu.image.addRange('saturation', human.config.filter, 'saturation', -1.0, 1.0, 0.05, (val) => human.config.filter.saturation = parseFloat(val));\n menu.image.addRange('hue', human.config.filter, 'hue', 0, 360, 5, (val) => human.config.filter.hue = parseInt(val));\n menu.image.addRange('pixelate', human.config.filter, 'pixelate', 0, 32, 1, (val) => human.config.filter.pixelate = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addBool('negative', human.config.filter, 'negative');\n menu.image.addBool('sepia', human.config.filter, 'sepia');\n menu.image.addBool('vintage', human.config.filter, 'vintage');\n menu.image.addBool('kodachrome', human.config.filter, 'kodachrome');\n menu.image.addBool('technicolor', human.config.filter, 'technicolor');\n menu.image.addBool('polaroid', human.config.filter, 'polaroid');\n\n menu.process = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[2] });\n menu.process.addList('backend', ['cpu', 'webgl', 'wasm'], human.config.backend, (val) => human.config.backend = val);\n menu.process.addBool('async operations', human.config, 'async', (val) => human.config.async = val);\n menu.process.addBool('enable profiler', human.config, 'profile', (val) => human.config.profile = val);\n menu.process.addBool('memory shield', human.config, 'deallocate', (val) => human.config.deallocate = val);\n menu.process.addBool('use web worker', ui, 'useWorker');\n menu.process.addHTML('
');\n menu.process.addLabel('model parameters');\n menu.process.addRange('max objects', human.config.face.detector, 'maxFaces', 1, 50, 1, (val) => {\n human.config.face.detector.maxFaces = parseInt(val);\n human.config.body.maxDetections = parseInt(val);\n human.config.hand.maxHands = parseInt(val);\n });\n menu.process.addRange('skip frames', human.config.face.detector, 'skipFrames', 0, 50, 1, (val) => {\n human.config.face.detector.skipFrames = parseInt(val);\n human.config.face.emotion.skipFrames = parseInt(val);\n human.config.face.age.skipFrames = parseInt(val);\n human.config.hand.skipFrames = parseInt(val);\n });\n menu.process.addRange('min confidence', human.config.face.detector, 'minConfidence', 0.0, 1.0, 0.05, (val) => {\n human.config.face.detector.minConfidence = parseFloat(val);\n human.config.face.gender.minConfidence = parseFloat(val);\n human.config.face.emotion.minConfidence = parseFloat(val);\n human.config.hand.minConfidence = parseFloat(val);\n });\n menu.process.addRange('score threshold', human.config.face.detector, 'scoreThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.scoreThreshold = parseFloat(val);\n human.config.hand.scoreThreshold = parseFloat(val);\n human.config.body.scoreThreshold = parseFloat(val);\n });\n menu.process.addRange('overlap', human.config.face.detector, 'iouThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.iouThreshold = parseFloat(val);\n human.config.hand.iouThreshold = parseFloat(val);\n });\n menu.process.addHTML('
');\n menu.process.addButton('process sample images', 'process images', () => detectSampleImages());\n menu.process.addHTML('
');\n menu.process.addChart('FPS', 'FPS');\n\n menu.models = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[3] });\n menu.models.addBool('face detect', human.config.face, 'enabled');\n menu.models.addBool('face mesh', human.config.face.mesh, 'enabled');\n menu.models.addBool('face iris', human.config.face.iris, 'enabled');\n menu.models.addBool('face age', human.config.face.age, 'enabled');\n menu.models.addBool('face gender', human.config.face.gender, 'enabled');\n menu.models.addBool('face emotion', human.config.face.emotion, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('body pose', human.config.body, 'enabled');\n menu.models.addBool('hand pose', human.config.hand, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('gestures', human.config.gesture, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('face compare', human.config.face.embedding, 'enabled', (val) => {\n original = null;\n human.config.face.embedding.enabled = val;\n });\n\n document.getElementById('btnDisplay').addEventListener('click', (evt) => menu.display.toggle(evt));\n document.getElementById('btnImage').addEventListener('click', (evt) => menu.image.toggle(evt));\n document.getElementById('btnProcess').addEventListener('click', (evt) => menu.process.toggle(evt));\n document.getElementById('btnModel').addEventListener('click', (evt) => menu.models.toggle(evt));\n document.getElementById('btnStart').addEventListener('click', () => detectVideo());\n document.getElementById('play').addEventListener('click', () => detectVideo());\n}\n\nasync function main() {\n log('demo starting ...');\n setupMenu();\n document.getElementById('log').innerText = `Human: version ${human.version}`;\n // human.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this is not required, just pre-loads all models\n if (ui.modelsPreload && !ui.useWorker) {\n status('loading');\n await human.load(userConfig);\n }\n // this is not required, just pre-warms all models for faster initial inference\n if (ui.modelsWarmup && !ui.useWorker) {\n status('initializing');\n await human.warmup(userConfig);\n }\n status('human: ready');\n document.getElementById('loader').style.display = 'none';\n document.getElementById('play').style.display = 'block';\n log('ready');\n}\n\nwindow.onload = main;\nwindow.onresize = setupCamera;\n"],
- "mappings": "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AAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,0BAGP,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAClJ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAChJ,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IACpJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GACrJ,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GACpJ,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EACpJ,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAC9I,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,WAEhI,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,G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,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU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",
+ "sourcesContent": ["import * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (const i in boundingBoxes) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 1000;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]]));\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => ([\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1], coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n this.skipped++;\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n // don't reset on test image\n if ((input.shape[1] !== 255) && (input.shape[2] !== 255)) this.skipped = 0;\n }\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (const i in this.storedBoxes) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...enlargedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // console.log(this.skipped, config.face.detector.skipFrames, this.detectedFaces, config.face.detector.maxFaces, detector?.boxes.length, this.storedBoxes.length);\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n let angle = 0;\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n const boxLandmarksFromMeshModel = box.landmarks.length >= LANDMARKS_COUNT;\n let [indexOfMouth, indexOfForehead] = MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n if (boxLandmarksFromMeshModel === false) {\n [indexOfMouth, indexOfForehead] = BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n }\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n let rotatedImage = input;\n let rotationMatrix = util.IDENTITY_MATRIX;\n if (angle !== 0) {\n rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n }\n const face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n const outputFace = config.face.detector.rotation ? tf.image.rotateWithOffset(face, angle) : face;\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: outputFace,\n };\n return prediction;\n }\n\n // The first returned tensor represents facial contours, which are included in the coordinates.\n const [, confidence, contourCoords] = this.meshDetector.predict(face);\n const confidenceVal = confidence.dataSync()[0];\n confidence.dispose();\n if (confidenceVal < config.face.detector.minConfidence) {\n contourCoords.dispose();\n return null;\n }\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = (this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop])));\n const eyePredictionsData = eyePredictions.dataSync();\n eyePredictions.dispose();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n tf.dispose(rawCoords);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: outputFace,\n };\n this.storedBoxes[i] = { ...landmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as pipe from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.pipeline = new pipe.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.pipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n // guard against disposed tensors on long running operations such as pause in middle of processing\n if (prediction.isDisposedInternal) continue;\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key in coords.MESH_ANNOTATIONS) {\n if (config.face.iris.enabled || key.includes('Iris') === false) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n }\n results.push({\n confidence: prediction.confidence || 0,\n box: prediction.box ? [prediction.box.startPoint[0], prediction.box.startPoint[1], prediction.box.endPoint[0] - prediction.box.startPoint[0], prediction.box.endPoint[1] - prediction.box.startPoint[1]] : 0,\n mesh,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nasync function load(config) {\n const models = await Promise.all([\n blazeface.load(config),\n tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }),\n tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }),\n ]);\n const faceMesh = new MediaPipeFaceMesh(models[0], models[1], models[2], config);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "const profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n // eslint-disable-next-line no-console\n console.log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet frame = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((frame < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet frame = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((frame < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.gender.inputSize, config.face.gender.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n // const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surpise', 'neutral'];\nconst models = {};\nlet last = [];\nlet frame = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((frame < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // euclidean distance\n const distance = 10 * Math.sqrt(\n embedding1\n .map((val, i) => (val - embedding2[i]))\n .reduce((dist, diff) => dist + (diff ** 2), 0),\n );\n const confidence = 2 * (0.5 - distance); // double confidence output for bigger differences and round to three decimals\n return Math.trunc(1000 * confidence) / 1000;\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nclass BaseModel {\n constructor(model, outputStride) {\n this.model = model;\n this.outputStride = outputStride;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = this.preprocessInput(input.toFloat());\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = this.nameOutputResults(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n /**\n * Releases the CPU and GPU memory allocated by the model.\n */\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\n\nclass MobileNet extends modelBase.BaseModel {\n // eslint-disable-next-line class-methods-use-this\n preprocessInput(input) {\n // Normalize the pixels [0, 255] to be between [-1, 1].\n return tf.tidy(() => tf.div(input, 127.5).sub(1.0));\n }\n\n // eslint-disable-next-line class-methods-use-this\n nameOutputResults(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n }\n}\nexports.MobileNet = MobileNet;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) {\n break;\n }\n }\n return localMaximum;\n}\n/**\n * Builds a priority queue with part candidate positions for a specific image in\n * the batch. For this we find all local maxima in the score maps with score\n * values above a threshold. We create a single priority queue across all parts.\n */\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\nexports.NUM_KEYPOINTS = exports.partNames.length;\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\n/*\n * Define the skeleton. This defines the parent->child relationships of our\n * tree. Arbitrarily this defines the nose as the root of the tree, however\n * since we will infer the displacement for both parent->child and\n * child->parent, we can define the tree root as any node.\n */\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n/**\n * We get a new keypoint along the `edgeId` for the pose instance, assuming\n * that the position of the `idSource` part is already known. For this, we\n * follow the displacement vector from the source to target part (stored in\n * the `i`-t channel of the displacement tensor). The displaced keypoint\n * vector is refined using the offset vector by `offsetRefineStep` times.\n */\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n/**\n * Follows the displacement fields to decode the full pose of the object\n * instance given the position of a part that acts as root.\n *\n * @return An array of decoded keypoints and their scores for a single pose\n */\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward\n // displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward\n // displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n/* Score the newly proposed object instance without taking into account\n * the scores of the parts that overlap with any previously detected\n * instance.\n */\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) {\n result += score;\n }\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n// A point (y, x) is considered as root part candidate if its score is a\n// maximum in a window |y - y'| <= kLocalMaximumRadius, |x - x'| <=\n// kLocalMaximumRadius.\nconst kLocalMaximumRadius = 1;\n/**\n * Detects multiple poses and finds their parts from part scores and\n * displacement vectors. It returns up to `maxDetections` object instance\n * detections in decreasing root score order. It works as follows: We first\n * create a priority queue with local part score maxima above\n * `scoreThreshold`, considering all parts at the same time. Then we\n * iteratively pull the top element of the queue (in decreasing score order)\n * and treat it as a root candidate for a new object instance. To avoid\n * duplicate detections, we reject the root candidate if it is within a disk\n * of `nmsRadius` pixels from the corresponding part of a previously detected\n * instance, which is a form of part-based non-maximum suppression (NMS). If\n * the root candidate passes the NMS check, we start a new object instance\n * detection, treating the corresponding part as root and finding the\n * positions of the remaining parts by following the displacement vectors\n * along the tree-structured part graph. We assign to the newly detected\n * instance a score equal to the sum of scores of its parts which have not\n * been claimed by a previous instance (i.e., those at least `nmsRadius`\n * pixels away from the corresponding part of all previously detected\n * instances), divided by the total number of parts `numParts`.\n *\n * @param heatmapScores 3-D tensor with shape `[height, width, numParts]`.\n * The value of heatmapScores[y, x, k]` is the score of placing the `k`-th\n * object part at position `(y, x)`.\n *\n * @param offsets 3-D tensor with shape `[height, width, numParts * 2]`.\n * The value of [offsets[y, x, k], offsets[y, x, k + numParts]]` is the\n * short range offset vector of the `k`-th object part at heatmap\n * position `(y, x)`.\n *\n * @param displacementsFwd 3-D tensor of shape\n * `[height, width, 2 * num_edges]`, where `num_edges = num_parts - 1` is the\n * number of edges (parent-child pairs) in the tree. It contains the forward\n * displacements between consecutive part from the root towards the leaves.\n *\n * @param displacementsBwd 3-D tensor of shape\n * `[height, width, 2 * num_edges]`, where `num_edges = num_parts - 1` is the\n * number of edges (parent-child pairs) in the tree. It contains the backward\n * displacements between consecutive part from the root towards the leaves.\n *\n * @param outputStride The output stride that was used when feed-forwarding\n * through the PoseNet model. Must be 32, 16, or 8.\n *\n * @param maxPoseDetections Maximum number of returned instance detections per\n * image.\n *\n * @param scoreThreshold Only return instance detections that have root part\n * score greater or equal to this value. Defaults to 0.5.\n *\n * @param nmsRadius Non-maximum suppression part distance. It needs to be\n * strictly positive. Two parts suppress each other if they are less than\n * `nmsRadius` pixels away. Defaults to 20.\n *\n * @return An array of poses and their scores, each containing keypoints and\n * the corresponding keypoint scores.\n */\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, outputStride, maxPoseDetections, scoreThreshold = 0.5, nmsRadius = 20) {\n const poses = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius * nmsRadius;\n // Generate at most maxDetections object instances per image in\n // decreasing root part score order.\n while (poses.length < maxPoseDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it\n // is within a disk of `nmsRadius` pixels from the corresponding part of\n // a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as modelMobileNet from './modelMobileNet';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as util from './util';\n\nclass PoseNet {\n constructor(net) {\n this.baseModel = net;\n this.outputStride = 16;\n }\n\n async estimatePoses(input, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized);\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, this.outputStride, config.body.maxDetections, config.body.scoreThreshold, config.body.nmsRadius);\n const resultPoses = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n resolve(resultPoses);\n });\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const graphModel = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelMobileNet.MobileNet(graphModel, this.outputStride);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelMobileNet from './modelMobileNet';\nimport * as modelPoseNet from './modelPoseNet';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\nexports.load = modelPoseNet.load;\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.MobileNet = modelMobileNet.MobileNet;\nexports.decodeMultiplePoses = decodeMultiple.decodeMultiplePoses;\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\nexports.getBoundingBox = util.getBoundingBox;\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\nexports.scalePose = util.scalePose;\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scores = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scoresVal = scores.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scores.dispose();\n filteredT.dispose();\n const hands = [];\n for (const boxIndex of filtered) {\n if (scoresVal[boxIndex] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [boxIndex, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [boxIndex, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, boxIndex).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scoresVal[boxIndex] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n if (!predictions || predictions.length === 0) return null;\n const hands = [];\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\nconst PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 3;\nconst HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // increased from model default 1.65;\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(boundingBoxDetector, meshDetector, inputSize) {\n this.boxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 1000;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => {\n const homogeneousCoordinate = [...coord, 1];\n return util.rotatePoint(homogeneousCoordinate, rotationMatrix);\n });\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n boxAroundHand.palmLandmarks = palmLandmarks;\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n this.skipped++;\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.boxDetector.estimateHandBounds(image, config);\n // don't reset on test image\n if ((image.shape[1] !== 255) && (image.shape[2] !== 255)) this.skipped = 0;\n }\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.storedBoxes = [];\n this.detectedHands = 0;\n for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // console.log(`skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (const i in this.storedBoxes) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]);\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized);\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidence, keypoints] = await this.meshDetector.predict(handImage);\n handImage.dispose();\n const confidenceValue = confidence.dataSync()[0];\n confidence.dispose();\n if (confidenceValue >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence: confidenceValue,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as pipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(pipe) {\n this.pipeline = pipe;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.pipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n hands.push({\n confidence: prediction.confidence,\n box: prediction.box ? [\n prediction.box.topLeft[0],\n prediction.box.topLeft[1],\n prediction.box.bottomRight[0] - prediction.box.topLeft[0],\n prediction.box.bottomRight[1] - prediction.box.topLeft[1],\n ] : 0,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }),\n tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }),\n ]);\n const detector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n const pipe = new pipeline.HandPipeline(detector, handPoseModel, config.hand.inputSize);\n const handpose = new HandPose(pipe);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handpose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const pose of res) {\n // raising hands\n const leftWrist = pose.keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = pose.keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = pose.keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push('i give up');\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push('raise left hand');\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push('raise right hand');\n\n // leaning\n const leftShoulder = pose.keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = pose.keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push(`leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}`);\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const face of res) {\n // if (face.annotations['rightCheek'] && face.annotations['leftCheek'] && (face.annotations['rightCheek'].length > 0) && (face.annotations['leftCheek'].length > 0)) {\n // gestures.push(`facing ${((face.annotations['rightCheek'][0][2] > 0) || (face.annotations['leftCheek'][0][2] < 0)) ? 'right' : 'left'}`);\n // }\n if (face.mesh && face.mesh.length > 0) {\n const eyeFacing = face.mesh[35][2] - face.mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push('facing camera');\n else gestures.push(`facing ${eyeFacing < 0 ? 'right' : 'left'}`);\n const openLeft = Math.abs(face.mesh[374][1] - face.mesh[386][1]) / Math.abs(face.mesh[443][1] - face.mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push('blink left eye');\n const openRight = Math.abs(face.mesh[145][1] - face.mesh[159][1]) / Math.abs(face.mesh[223][1] - face.mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push('blink right eye');\n const mouthOpen = Math.min(100, 500 * Math.abs(face.mesh[13][1] - face.mesh[14][1]) / Math.abs(face.mesh[10][1] - face.mesh[152][1]));\n if (mouthOpen > 10) gestures.push(`mouth ${Math.trunc(mouthOpen)}% open`);\n const chinDepth = face.mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push(`head ${chinDepth < 0 ? 'up' : 'down'}`);\n }\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const hand of res) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(hand['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push(`${closest.name} forward ${highest.name} up`);\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n _tempFramebuffers[index] = _tempFramebuffers[index]\n || _createFramebufferTexture(_width, _height);\n\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n source = _getTempFramebuffer(_currentFramebufferIndex).texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n target = _getTempFramebuffer(_currentFramebufferIndex).fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n // eslint-disable-next-line no-console\n console.log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n // const gl = outCanvas.getContext('webgl');\n const gl = false;\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx.drawImage(outCanvas, 0, 0);\n const data = tempCtx.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "import * as tf from '../dist/tfjs.esm.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n // helper function: wrapper around console output\n log(...msg) {\n // eslint-disable-next-line no-console\n if (msg && this.config.console) console.log('Human:', ...msg);\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) this.log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n this.log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n this.log('configuration:', this.config);\n this.log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n this.log('Backend not registred:', this.config.backend);\n }\n */\n\n this.log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n this.log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) this.log('warning: wasm simd support is not enabled');\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n this.log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n this.log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n this.log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n this.log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = { face: gesture.face(faceRes), body: gesture.body(poseRes), hand: gesture.hand(handRes) };\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig, sample) {\n if (!sample) sample = new ImageData(255, 255);\n // const sample = tf.zeros([1, 255, 255, 3]);\n const warmup = await this.detect(sample, userConfig);\n this.log('warmed up');\n return warmup;\n }\n}\n\nexport { Human as default };\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nimport * as tf from '../../dist/tfjs.esm.js';\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h,\n box.startPoint[0] / w,\n box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n const palmLandmarks = box.palmLandmarks.map((coord) => {\n const scaledCoord = [coord[0] * factor[0], coord[1] * factor[1]];\n return scaledCoord;\n });\n return { startPoint, endPoint, palmLandmarks, confidence: box.confidence };\n}\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nfunction shiftBox(box, shiftFactor) {\n const boxSize = [\n box.endPoint[0] - box.startPoint[0],\n box.endPoint[1] - box.startPoint[1],\n ];\n const shiftVector = [boxSize[0] * shiftFactor[0], boxSize[1] * shiftFactor[1]];\n const startPoint = [box.startPoint[0] + shiftVector[0], box.startPoint[1] + shiftVector[1]];\n const endPoint = [box.endPoint[0] + shiftVector[0], box.endPoint[1] + shiftVector[1]];\n return { startPoint, endPoint, palmLandmarks: box.palmLandmarks };\n}\nexport {\n cutBoxFromImageAndResize,\n enlargeBox,\n getBoxCenter,\n getBoxSize,\n scaleBoxCoordinates,\n shiftBox,\n squarifyBox,\n};\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nconst buildTranslationMatrix = (x, y) => [[1, 0, x], [0, 1, y], [0, 0, 1]];\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexport {\n buildRotationMatrix,\n computeRotation,\n dot,\n getColumnFrom2DArr,\n invertTransformMatrix,\n normalizeRadians,\n rotatePoint,\n};\n", "import * as tf from '../dist/tfjs.esm.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n // helper function: wrapper around console output\n log(...msg) {\n // eslint-disable-next-line no-console\n if (msg && this.config.console) console.log('Human:', ...msg);\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) this.log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n this.log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n this.log('configuration:', this.config);\n this.log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n this.log('Backend not registred:', this.config.backend);\n }\n */\n\n this.log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n this.log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) this.log('warning: wasm simd support is not enabled');\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n this.log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n this.log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n this.log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n this.log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = { face: gesture.face(faceRes), body: gesture.body(poseRes), hand: gesture.hand(handRes) };\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig, sample) {\n if (!sample) sample = new ImageData(255, 255);\n // const sample = tf.zeros([1, 255, 255, 3]);\n const warmup = await this.detect(sample, userConfig);\n this.log('warmed up');\n return warmup;\n }\n}\n\nexport { Human as default };\n", "/* eslint-disable indent */\n/* eslint-disable no-multi-spaces */\n\nexport default {\n backend: 'webgl', // select tfjs backend to use\n wasmPath: '../assets/', // path for wasm binaries\n // only used for backend: wasm\n console: true, // enable debugging output to console\n async: true, // execute enabled models in parallel\n // this disables per-model performance data but\n // slightly increases performance\n // cannot be used if profiling is enabled\n profile: false, // enable tfjs profiling\n // this has significant performance impact\n // only enable for debugging purposes\n // currently only implemented for age,gender,emotion models\n deallocate: false, // aggresively deallocate gpu memory after each usage\n // only valid for webgl backend and only during first call\n // cannot be changed unless library is reloaded\n // this has significant performance impact\n // only enable on low-memory devices\n scoped: false, // enable scoped runs\n // some models *may* have memory leaks,\n // this wrapps everything in a local scope at a cost of performance\n // typically not needed\n videoOptimized: true, // perform additional optimizations when input is video,\n // must be disabled for images\n // basically this skips object box boundary detection for every n frames\n // while maintaining in-box detection since objects cannot move that fast\n\n filter: {\n enabled: true, // enable image pre-processing filters\n width: 0, // resize input width\n height: 0, // resize input height\n // if both width and height are set to 0, there is no resizing\n // if just one is set, second one is scaled automatically\n // if both are set, values are used as-is\n return: true, // return processed canvas imagedata in result\n brightness: 0, // range: -1 (darken) to 1 (lighten)\n contrast: 0, // range: -1 (reduce contrast) to 1 (increase contrast)\n sharpness: 0, // range: 0 (no sharpening) to 1 (maximum sharpening)\n blur: 0, // range: 0 (no blur) to N (blur radius in pixels)\n saturation: 0, // range: -1 (reduce saturation) to 1 (increase saturation)\n hue: 0, // range: 0 (no change) to 360 (hue rotation in degrees)\n negative: false, // image negative\n sepia: false, // image sepia colors\n vintage: false, // image vintage colors\n kodachrome: false, // image kodachrome colors\n technicolor: false, // image technicolor colors\n polaroid: false, // image polaroid camera effect\n pixelate: 0, // range: 0 (no pixelate) to N (number of pixels to pixelate)\n },\n\n gesture: {\n enabled: true, // enable simple gesture recognition\n },\n\n face: {\n enabled: true, // controls if specified modul is enabled\n // face.enabled is required for all face models:\n // detector, mesh, iris, age, gender, emotion\n // (note: module is not loaded until it is required)\n detector: {\n modelPath: '../models/blazeface-back.json', // can be 'front' or 'back'.\n // 'front' is optimized for large faces\n // such as front-facing camera and\n // 'back' is optimized for distanct faces.\n inputSize: 256, // fixed value: 128 for front and 256 for 'back'\n rotation: false, // use best-guess rotated face image or just box with rotation as-is\n maxFaces: 10, // maximum number of faces detected in the input\n // should be set to the minimum number for performance\n skipFrames: 15, // how many frames to go without re-running the face bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated face analysis as the head probably hasn't moved much\n // in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.2, // threshold for deciding whether boxes overlap too much in\n // non-maximum suppression (0.1 means drop if overlap 10%)\n scoreThreshold: 0.5, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression,\n // this is applied on detection objects only and before minConfidence\n },\n\n mesh: {\n enabled: true,\n modelPath: '../models/facemesh.json',\n inputSize: 192, // fixed value\n },\n\n iris: {\n enabled: true,\n modelPath: '../models/iris.json',\n inputSize: 64, // fixed value\n },\n\n age: {\n enabled: true,\n modelPath: '../models/age-ssrnet-imdb.json', // can be 'age-ssrnet-imdb' or 'age-ssrnet-wiki'\n // which determines training set for model\n inputSize: 64, // fixed value\n skipFrames: 15, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n gender: {\n enabled: true,\n minConfidence: 0.1, // threshold for discarding a prediction\n modelPath: '../models/gender-ssrnet-imdb.json', // can be 'gender', 'gender-ssrnet-imdb' or 'gender-ssrnet-wiki'\n inputSize: 64, // fixed value\n skipFrames: 15, // how many frames to go without re-running the detector\n // only used for video inputs\n },\n\n emotion: {\n enabled: true,\n inputSize: 64, // fixed value\n minConfidence: 0.2, // threshold for discarding a prediction\n skipFrames: 15, // how many frames to go without re-running the detector\n modelPath: '../models/emotion-large.json', // can be 'mini', 'large'\n },\n\n embedding: {\n enabled: false,\n inputSize: 112, // fixed value\n modelPath: '../models/mobilefacenet.json',\n },\n },\n\n body: {\n enabled: true,\n modelPath: '../models/posenet.json',\n inputSize: 257, // fixed value\n maxDetections: 10, // maximum number of people detected in the input\n // should be set to the minimum number for performance\n scoreThreshold: 0.8, // threshold for deciding when to remove boxes based on score\n // in non-maximum suppression\n nmsRadius: 20, // radius for deciding points are too close in non-maximum suppression\n },\n\n hand: {\n enabled: true,\n inputSize: 256, // fixed value\n skipFrames: 15, // how many frames to go without re-running the hand bounding box detector\n // only used for video inputs\n // e.g., if model is running st 25 FPS, we can re-use existing bounding\n // box for updated hand skeleton analysis as the hand probably\n // hasn't moved much in short time (10 * 1/25 = 0.25 sec)\n minConfidence: 0.5, // threshold for discarding a prediction\n iouThreshold: 0.1, // threshold for deciding whether boxes overlap too much\n // in non-maximum suppression\n scoreThreshold: 0.8, // threshold for deciding when to remove boxes based on\n // score in non-maximum suppression\n maxHands: 1, // maximum number of hands detected in the input\n // should be set to the minimum number for performance\n landmarks: true, // detect hand landmarks or just hand boundary box\n detector: {\n modelPath: '../models/handdetect.json',\n },\n skeleton: {\n modelPath: '../models/handskeleton.json',\n },\n },\n};\n", "import * as tf from '../dist/tfjs.esm.js';\nimport * as facemesh from './face/facemesh.js';\nimport * as age from './age/age.js';\nimport * as gender from './gender/gender.js';\nimport * as emotion from './emotion/emotion.js';\nimport * as embedding from './embedding/embedding.js';\nimport * as posenet from './body/posenet.js';\nimport * as handpose from './hand/handpose.js';\nimport * as gesture from './gesture.js';\nimport * as image from './image.js';\nimport * as profile from './profile.js';\nimport * as config from '../config.js';\nimport * as app from '../package.json';\n\n// helper function: gets elapsed time on both browser and nodejs\nconst now = () => {\n if (typeof performance !== 'undefined') return performance.now();\n return parseInt(Number(process.hrtime.bigint()) / 1000 / 1000);\n};\n\n// helper function: perform deep merge of multiple objects so it allows full inheriance with overrides\nfunction mergeDeep(...objects) {\n const isObject = (obj) => obj && typeof obj === 'object';\n return objects.reduce((prev, obj) => {\n Object.keys(obj || {}).forEach((key) => {\n const pVal = prev[key];\n const oVal = obj[key];\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\n prev[key] = pVal.concat(...oVal);\n } else if (isObject(pVal) && isObject(oVal)) {\n prev[key] = mergeDeep(pVal, oVal);\n } else {\n prev[key] = oVal;\n }\n });\n return prev;\n }, {});\n}\n\nclass Human {\n constructor(userConfig = {}) {\n this.tf = tf;\n this.version = app.version;\n this.config = mergeDeep(config.default, userConfig);\n this.fx = null;\n this.state = 'idle';\n this.numTensors = 0;\n this.analyzeMemoryLeaks = false;\n this.checkSanity = false;\n this.firstRun = true;\n this.perf = {};\n // object that contains all initialized models\n this.models = {\n facemesh: null,\n posenet: null,\n handpose: null,\n iris: null,\n age: null,\n gender: null,\n emotion: null,\n };\n // export raw access to underlying models\n this.facemesh = facemesh;\n this.age = age;\n this.gender = gender;\n this.emotion = emotion;\n this.body = posenet;\n this.hand = handpose;\n }\n\n // helper function: wrapper around console output\n log(...msg) {\n // eslint-disable-next-line no-console\n if (msg && this.config.console) console.log('Human:', ...msg);\n }\n\n profile() {\n if (this.config.profile) return profile.data;\n return {};\n }\n\n // helper function: measure tensor leak\n analyze(...msg) {\n if (!this.analyzeMemoryLeaks) return;\n const current = tf.engine().state.numTensors;\n const previous = this.numTensors;\n this.numTensors = current;\n const leaked = current - previous;\n if (leaked !== 0) this.log(...msg, leaked);\n }\n\n // quick sanity check on inputs\n sanity(input) {\n if (!this.checkSanity) return null;\n if (!input) return 'input is not defined';\n if (tf.ENV.flags.IS_NODE && !(input instanceof tf.Tensor)) {\n return 'input must be a tensor';\n }\n try {\n tf.getBackend();\n } catch {\n return 'backend not loaded';\n }\n return null;\n }\n\n simmilarity(embedding1, embedding2) {\n if (this.config.face.embedding.enabled) return embedding.simmilarity(embedding1, embedding2);\n return 0;\n }\n\n // preload models, not explicitly required as it's done automatically on first use\n async load(userConfig) {\n this.state = 'load';\n const timeStamp = now();\n if (userConfig) this.config = mergeDeep(this.config, userConfig);\n\n if (this.firstRun) {\n this.log(`version: ${this.version} TensorFlow/JS version: ${tf.version_core}`);\n await this.checkBackend(true);\n if (tf.ENV.flags.IS_BROWSER) {\n this.log('configuration:', this.config);\n this.log('tf flags:', tf.ENV.flags);\n }\n this.firstRun = false;\n }\n if (this.config.async) {\n [\n this.models.facemesh,\n this.models.age,\n this.models.gender,\n this.models.emotion,\n this.models.embedding,\n this.models.posenet,\n this.models.handpose,\n ] = await Promise.all([\n this.models.facemesh || (this.config.face.enabled ? facemesh.load(this.config) : null),\n this.models.age || ((this.config.face.enabled && this.config.face.age.enabled) ? age.load(this.config) : null),\n this.models.gender || ((this.config.face.enabled && this.config.face.gender.enabled) ? gender.load(this.config) : null),\n this.models.emotion || ((this.config.face.enabled && this.config.face.emotion.enabled) ? emotion.load(this.config) : null),\n this.models.embedding || ((this.config.face.enabled && this.config.face.embedding.enabled) ? embedding.load(this.config) : null),\n this.models.posenet || (this.config.body.enabled ? posenet.load(this.config) : null),\n this.models.handpose || (this.config.hand.enabled ? handpose.load(this.config) : null),\n ]);\n } else {\n if (this.config.face.enabled && !this.models.facemesh) this.models.facemesh = await facemesh.load(this.config);\n if (this.config.face.enabled && this.config.face.age.enabled && !this.models.age) this.models.age = await age.load(this.config);\n if (this.config.face.enabled && this.config.face.gender.enabled && !this.models.gender) this.models.gender = await gender.load(this.config);\n if (this.config.face.enabled && this.config.face.emotion.enabled && !this.models.emotion) this.models.emotion = await emotion.load(this.config);\n if (this.config.face.enabled && this.config.face.embedding.enabled && !this.models.embedding) this.models.embedding = await embedding.load(this.config);\n if (this.config.body.enabled && !this.models.posenet) this.models.posenet = await posenet.load(this.config);\n if (this.config.hand.enabled && !this.models.handpose) this.models.handpose = await handpose.load(this.config);\n }\n const current = Math.trunc(now() - timeStamp);\n if (current > (this.perf.load || 0)) this.perf.load = current;\n }\n\n // check if backend needs initialization if it changed\n async checkBackend(force) {\n if (this.config.backend && (this.config.backend !== '') && force || (tf.getBackend() !== this.config.backend)) {\n const timeStamp = now();\n this.state = 'backend';\n /* force backend reload\n if (this.config.backend in tf.engine().registry) {\n const backendFactory = tf.findBackendFactory(this.config.backend);\n tf.removeBackend(this.config.backend);\n tf.registerBackend(this.config.backend, backendFactory);\n } else {\n this.log('Backend not registred:', this.config.backend);\n }\n */\n\n this.log('setting backend:', this.config.backend);\n\n if (this.config.backend === 'wasm') {\n this.log('settings wasm path:', this.config.wasmPath);\n tf.setWasmPaths(this.config.wasmPath);\n const simd = await tf.env().getAsync('WASM_HAS_SIMD_SUPPORT');\n if (!simd) this.log('warning: wasm simd support is not enabled');\n }\n\n await tf.setBackend(this.config.backend);\n tf.enableProdMode();\n /* debug mode is really too mcuh\n tf.enableDebugMode();\n */\n if (tf.getBackend() === 'webgl') {\n if (this.config.deallocate) {\n this.log('changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:', this.config.deallocate);\n tf.ENV.set('WEBGL_DELETE_TEXTURE_THRESHOLD', this.config.deallocate ? 0 : -1);\n }\n tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n tf.ENV.set('WEBGL_PACK_DEPTHWISECONV', true);\n const gl = await tf.backend().getGPGPUContext().gl;\n this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`);\n }\n await tf.ready();\n this.perf.backend = Math.trunc(now() - timeStamp);\n }\n }\n\n async detectFace(input) {\n // run facemesh, includes blazeface and iris\n // eslint-disable-next-line no-async-promise-executor\n let timeStamp;\n let ageRes;\n let genderRes;\n let emotionRes;\n let embeddingRes;\n const faceRes = [];\n this.state = 'run:face';\n timeStamp = now();\n const faces = await this.models.facemesh.estimateFaces(input, this.config);\n this.perf.face = Math.trunc(now() - timeStamp);\n for (const face of faces) {\n this.analyze('Get Face');\n\n // is something went wrong, skip the face\n if (!face.image || face.image.isDisposedInternal) {\n this.log('Face object is disposed:', face.image);\n continue;\n }\n\n // run age, inherits face from blazeface\n this.analyze('Start Age:');\n if (this.config.async) {\n ageRes = this.config.face.age.enabled ? age.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:age';\n timeStamp = now();\n ageRes = this.config.face.age.enabled ? await age.predict(face.image, this.config) : {};\n this.perf.age = Math.trunc(now() - timeStamp);\n }\n\n // run gender, inherits face from blazeface\n this.analyze('Start Gender:');\n if (this.config.async) {\n genderRes = this.config.face.gender.enabled ? gender.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:gender';\n timeStamp = now();\n genderRes = this.config.face.gender.enabled ? await gender.predict(face.image, this.config) : {};\n this.perf.gender = Math.trunc(now() - timeStamp);\n }\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Emotion:');\n if (this.config.async) {\n emotionRes = this.config.face.emotion.enabled ? emotion.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:emotion';\n timeStamp = now();\n emotionRes = this.config.face.emotion.enabled ? await emotion.predict(face.image, this.config) : {};\n this.perf.emotion = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // run emotion, inherits face from blazeface\n this.analyze('Start Embedding:');\n if (this.config.async) {\n embeddingRes = this.config.face.embedding.enabled ? embedding.predict(face.image, this.config) : {};\n } else {\n this.state = 'run:embedding';\n timeStamp = now();\n embeddingRes = this.config.face.embedding.enabled ? await embedding.predict(face.image, this.config) : {};\n this.perf.embedding = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Emotion:');\n\n // if async wait for results\n if (this.config.async) {\n [ageRes, genderRes, emotionRes, embeddingRes] = await Promise.all([ageRes, genderRes, emotionRes, embeddingRes]);\n }\n\n this.analyze('Finish Face:');\n // dont need face anymore\n face.image.dispose();\n\n // calculate iris distance\n // iris: array[ center, left, top, right, bottom]\n const irisSize = (face.annotations.leftEyeIris && face.annotations.rightEyeIris)\n /* average human iris size is 11.7mm */\n ? 11.7 * Math.max(Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]), Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]))\n : 0;\n\n // combine results\n faceRes.push({\n confidence: face.confidence,\n box: face.box,\n mesh: face.mesh,\n annotations: face.annotations,\n age: ageRes.age,\n gender: genderRes.gender,\n genderConfidence: genderRes.confidence,\n emotion: emotionRes,\n embedding: embeddingRes,\n iris: (irisSize !== 0) ? Math.trunc(irisSize) / 100 : 0,\n });\n this.analyze('End Face');\n }\n this.analyze('End FaceMesh:');\n if (this.config.async) {\n if (this.perf.face) delete this.perf.face;\n if (this.perf.age) delete this.perf.age;\n if (this.perf.gender) delete this.perf.gender;\n if (this.perf.emotion) delete this.perf.emotion;\n }\n return faceRes;\n }\n\n async image(input, userConfig = {}) {\n this.state = 'image';\n this.config = mergeDeep(this.config, userConfig);\n const process = image.process(input, this.config);\n process.tensor.dispose();\n return process.canvas;\n }\n\n // main detect function\n async detect(input, userConfig = {}) {\n // detection happens inside a promise\n return new Promise(async (resolve) => {\n this.state = 'config';\n let timeStamp;\n\n // update configuration\n this.config = mergeDeep(this.config, userConfig);\n\n // sanity checks\n this.state = 'check';\n const error = this.sanity(input);\n if (error) {\n this.log(error, input);\n resolve({ error });\n }\n\n let poseRes;\n let handRes;\n let faceRes;\n\n const timeStart = now();\n\n // configure backend\n await this.checkBackend();\n\n // load models if enabled\n await this.load();\n\n if (this.config.scoped) tf.engine().startScope();\n this.analyze('Start Scope:');\n\n timeStamp = now();\n const process = image.process(input, this.config);\n if (!process || !process.tensor) {\n this.log('could not convert input to tensor');\n resolve({ error: 'could not convert input to tensor' });\n return;\n }\n this.perf.image = Math.trunc(now() - timeStamp);\n this.analyze('Get Image:');\n\n // run face detection followed by all models that rely on face bounding box: face mesh, age, gender, emotion\n if (this.config.async) {\n faceRes = this.config.face.enabled ? this.detectFace(process.tensor) : [];\n if (this.perf.face) delete this.perf.face;\n } else {\n this.state = 'run:face';\n timeStamp = now();\n faceRes = this.config.face.enabled ? await this.detectFace(process.tensor) : [];\n this.perf.face = Math.trunc(now() - timeStamp);\n }\n\n // run posenet\n this.analyze('Start Body:');\n if (this.config.async) {\n poseRes = this.config.body.enabled ? this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n if (this.perf.body) delete this.perf.body;\n } else {\n this.state = 'run:body';\n timeStamp = now();\n poseRes = this.config.body.enabled ? await this.models.posenet.estimatePoses(process.tensor, this.config) : [];\n this.perf.body = Math.trunc(now() - timeStamp);\n }\n this.analyze('End Body:');\n\n // run handpose\n this.analyze('Start Hand:');\n if (this.config.async) {\n handRes = this.config.hand.enabled ? this.models.handpose.estimateHands(process.tensor, this.config) : [];\n if (this.perf.hand) delete this.perf.hand;\n } else {\n this.state = 'run:hand';\n timeStamp = now();\n handRes = this.config.hand.enabled ? await this.models.handpose.estimateHands(process.tensor, this.config) : [];\n this.perf.hand = Math.trunc(now() - timeStamp);\n }\n // this.analyze('End Hand:');\n\n // if async wait for results\n if (this.config.async) {\n [faceRes, poseRes, handRes] = await Promise.all([faceRes, poseRes, handRes]);\n }\n process.tensor.dispose();\n\n if (this.config.scoped) tf.engine().endScope();\n this.analyze('End Scope:');\n\n let gestureRes = [];\n if (this.config.gesture.enabled) {\n timeStamp = now();\n gestureRes = { face: gesture.face(faceRes), body: gesture.body(poseRes), hand: gesture.hand(handRes) };\n if (!this.config.async) this.perf.gesture = Math.trunc(now() - timeStamp);\n else if (this.perf.gesture) delete this.perf.gesture;\n }\n\n this.perf.total = Math.trunc(now() - timeStart);\n this.state = 'idle';\n resolve({ face: faceRes, body: poseRes, hand: handRes, gesture: gestureRes, performance: this.perf, canvas: process.canvas });\n });\n }\n\n async warmup(userConfig, sample) {\n if (!sample) sample = new ImageData(255, 255);\n // const sample = tf.zeros([1, 255, 255, 3]);\n const warmup = await this.detect(sample, userConfig);\n this.log('warmed up');\n return warmup;\n }\n}\n\nexport { Human as default };\n", "async function drawGesture(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.font = ui.baseFont;\n ctx.fillStyle = ui.baseLabel;\n let i = 1;\n for (const [key, val] of Object.entries(result)) {\n if (val.length > 0) {\n const label = `${key}: ${val.join(', ')}`;\n ctx.fillStyle = 'black';\n ctx.fillText(label, 8, 2 + (i * ui.baseLineHeight));\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText(label, 6, 0 + (i * ui.baseLineHeight));\n i += 1;\n }\n }\n}\n\nasync function drawFace(result, canvas, ui, triangulation) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n for (const face of result) {\n ctx.font = ui.baseFont;\n ctx.strokeStyle = ui.baseColor;\n ctx.fillStyle = ui.baseColor;\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n if (ui.drawBoxes) {\n ctx.rect(face.box[0], face.box[1], face.box[2], face.box[3]);\n }\n // silly hack since fillText does not suport new line\n const labels = [];\n // labels.push(`${Math.trunc(100 * face.confidence)}% face`);\n if (face.genderConfidence) labels.push(`${Math.trunc(100 * face.genderConfidence)}% ${face.gender || ''}`);\n // if (face.genderConfidence) labels.push(face.gender);\n if (face.age) labels.push(`age: ${face.age || ''}`);\n if (face.iris) labels.push(`iris: ${face.iris}`);\n if (face.emotion && face.emotion.length > 0) {\n const emotion = face.emotion.map((a) => `${Math.trunc(100 * a.score)}% ${a.emotion}`);\n labels.push(emotion.join(' '));\n }\n ctx.fillStyle = ui.baseLabel;\n for (let i = 0; i < labels.length; i++) {\n ctx.fillStyle = 'black';\n ctx.fillText(labels[i], face.box[0] + face.box[2] + 9, ((i + 1) * ui.baseLineHeight) + face.box[1] + 9);\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText(labels[i], face.box[0] + face.box[2] + 8, ((i + 1) * ui.baseLineHeight) + face.box[1] + 8);\n }\n ctx.fillStyle = ui.baseColor;\n ctx.stroke();\n ctx.lineWidth = 1;\n if (face.mesh) {\n if (ui.drawPoints) {\n for (const point of face.mesh) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * point[2])}, ${127.5 - (2 * point[2])}, 255, 0.5)` : ui.baseColor;\n ctx.beginPath();\n ctx.arc(point[0], point[1], 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n if (ui.drawPolygons) {\n for (let i = 0; i < triangulation.length / 3; i++) {\n const points = [\n triangulation[i * 3 + 0],\n triangulation[i * 3 + 1],\n triangulation[i * 3 + 2],\n ].map((index) => face.mesh[index]);\n const path = new Path2D();\n path.moveTo(points[0][0], points[0][1]);\n for (const point of points) {\n path.lineTo(point[0], point[1]);\n }\n path.closePath();\n ctx.strokeStyle = ui.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : ui.baseColor;\n ctx.stroke(path);\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * points[0][2])}, ${127.5 - (2 * points[0][2])}, 255, 0.3)` : ui.baseColor;\n ctx.fill(path);\n }\n }\n // iris: array[center, left, top, right, bottom]\n if (face.annotations && face.annotations.leftEyeIris) {\n ctx.strokeStyle = ui.useDepth ? 'rgba(255, 200, 255, 0.3)' : ui.baseColor;\n ctx.beginPath();\n const sizeX = Math.abs(face.annotations.leftEyeIris[3][0] - face.annotations.leftEyeIris[1][0]) / 2;\n const sizeY = Math.abs(face.annotations.leftEyeIris[4][1] - face.annotations.leftEyeIris[2][1]) / 2;\n ctx.ellipse(face.annotations.leftEyeIris[0][0], face.annotations.leftEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? 'rgba(255, 255, 200, 0.3)' : ui.baseColor;\n ctx.fill();\n }\n }\n if (face.annotations && face.annotations.rightEyeIris) {\n ctx.strokeStyle = ui.useDepth ? 'rgba(255, 200, 255, 0.3)' : ui.baseColor;\n ctx.beginPath();\n const sizeX = Math.abs(face.annotations.rightEyeIris[3][0] - face.annotations.rightEyeIris[1][0]) / 2;\n const sizeY = Math.abs(face.annotations.rightEyeIris[4][1] - face.annotations.rightEyeIris[2][1]) / 2;\n ctx.ellipse(face.annotations.rightEyeIris[0][0], face.annotations.rightEyeIris[0][1], sizeX, sizeY, 0, 0, 2 * Math.PI);\n ctx.stroke();\n if (ui.fillPolygons) {\n ctx.fillStyle = ui.useDepth ? 'rgba(255, 255, 200, 0.3)' : ui.baseColor;\n ctx.fill();\n }\n }\n }\n }\n }\n}\n\nconst lastDrawnPose = [];\nasync function drawBody(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.lineJoin = 'round';\n for (const i in result) {\n if (!lastDrawnPose[i] && ui.buffered) lastDrawnPose[i] = { ...result[i] };\n ctx.fillStyle = ui.baseColor;\n ctx.strokeStyle = ui.baseColor;\n ctx.font = ui.baseFont;\n ctx.lineWidth = ui.baseLineWidth;\n if (ui.drawPoints) {\n for (const pt in result[i].keypoints) {\n ctx.beginPath();\n if (ui.buffered) {\n lastDrawnPose[i].keypoints[pt].position.x = (lastDrawnPose[i].keypoints[pt].position.x + result[i].keypoints[pt].position.x) / 2;\n lastDrawnPose[i].keypoints[pt].position.y = (lastDrawnPose[i].keypoints[pt].position.y + result[i].keypoints[pt].position.y) / 2;\n ctx.arc(lastDrawnPose[i].keypoints[pt].position.x, lastDrawnPose[i].keypoints[pt].position.y, 2, 0, 2 * Math.PI);\n } else {\n ctx.arc(result[i].keypoints[pt].position.x, result[i].keypoints[pt].position.y, 2, 0, 2 * Math.PI);\n }\n ctx.fill();\n }\n }\n if (ui.drawPolygons) {\n const path = new Path2D();\n let part;\n // torso\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n path.lineTo(part.position.x, part.position.y);\n // legs\n part = result[i].keypoints.find((a) => a.part === 'leftHip');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftKnee');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftAnkle');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightHip');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightKnee');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightAnkle');\n path.lineTo(part.position.x, part.position.y);\n // arms\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftElbow');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'leftWrist');\n path.lineTo(part.position.x, part.position.y);\n // arms\n part = result[i].keypoints.find((a) => a.part === 'leftShoulder');\n path.moveTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightShoulder');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightElbow');\n path.lineTo(part.position.x, part.position.y);\n part = result[i].keypoints.find((a) => a.part === 'rightWrist');\n path.lineTo(part.position.x, part.position.y);\n // draw all\n ctx.stroke(path);\n }\n }\n}\n\nasync function drawHand(result, canvas, ui) {\n if (!result) return;\n const ctx = canvas.getContext('2d');\n ctx.lineJoin = 'round';\n for (const hand of result) {\n ctx.font = ui.baseFont;\n ctx.lineWidth = ui.baseLineWidth;\n if (ui.drawBoxes) {\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n ctx.strokeStyle = ui.baseColor;\n ctx.fillStyle = ui.baseColor;\n ctx.rect(hand.box[0], hand.box[1], hand.box[2], hand.box[3]);\n ctx.fillStyle = 'black';\n ctx.fillText('hand', hand.box[0] + 3, 1 + hand.box[1] + ui.baseLineHeight, hand.box[2]);\n ctx.fillStyle = ui.baseLabel;\n ctx.fillText('hand', hand.box[0] + 2, 0 + hand.box[1] + ui.baseLineHeight, hand.box[2]);\n ctx.stroke();\n }\n if (ui.drawPoints) {\n if (hand.landmarks && hand.landmarks.length > 0) {\n for (const point of hand.landmarks) {\n ctx.fillStyle = ui.useDepth ? `rgba(${127.5 + (2 * point[2])}, ${127.5 - (2 * point[2])}, 255, 0.5)` : ui.baseColor;\n ctx.beginPath();\n ctx.arc(point[0], point[1], 2, 0, 2 * Math.PI);\n ctx.fill();\n }\n }\n }\n if (ui.drawPolygons) {\n const addPart = (part) => {\n if (!part) return;\n for (let i = 0; i < part.length; i++) {\n ctx.lineWidth = ui.baseLineWidth;\n ctx.beginPath();\n ctx.strokeStyle = ui.useDepth ? `rgba(${127.5 + (2 * part[i][2])}, ${127.5 - (2 * part[i][2])}, 255, 0.5)` : ui.baseColor;\n ctx.moveTo(part[i > 0 ? i - 1 : 0][0], part[i > 0 ? i - 1 : 0][1]);\n ctx.lineTo(part[i][0], part[i][1]);\n ctx.stroke();\n }\n };\n addPart(hand.annotations.indexFinger);\n addPart(hand.annotations.middleFinger);\n addPart(hand.annotations.ringFinger);\n addPart(hand.annotations.pinky);\n addPart(hand.annotations.thumb);\n // addPart(hand.annotations.palmBase);\n }\n }\n}\n\n// eslint-disable-next-line import/prefer-default-export\nexport default {\n face: drawFace,\n body: drawBody,\n hand: drawHand,\n gesture: drawGesture,\n};\n", "let instance = 0;\nlet CSScreated = false;\n\nlet theme = {\n background: 'darkslategray',\n hover: 'lightgray',\n itemBackground: 'black',\n itemColor: 'white',\n buttonBackground: 'lightblue',\n buttonHover: 'lightgreen',\n checkboxOn: 'lightgreen',\n checkboxOff: 'lightcoral',\n rangeBackground: 'lightblue',\n rangeLabel: 'white',\n chartColor: 'lightblue',\n};\n\nfunction createCSS() {\n if (CSScreated) return;\n const css = `\n :root { --rounded: 0.2rem; }\n .menu { position: absolute; top: 0rem; right: 0; width: max-content; padding: 0 0.2rem 0 0.2rem; line-height: 1.8rem; z-index: 10;\n box-shadow: 0 0 8px dimgrey; background: ${theme.background}; border-radius: var(--rounded); border-color: black; border-style: solid; border-width: thin; }\n\n .menu:hover { box-shadow: 0 0 8px ${theme.hover}; }\n .menu-container { display: block; max-height: 100vh; }\n .menu-container-fadeout { max-height: 0; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-container-fadein { max-height: 100vh; overflow: hidden; transition: max-height, 0.5s ease; }\n .menu-item { display: flex; white-space: nowrap; padding: 0.2rem; cursor: default; width: 100%; }\n .menu-title { cursor: pointer; }\n .menu-hr { margin: 0.2rem; border: 1px solid rgba(0, 0, 0, 0.5) }\n .menu-label { padding: 0; font-weight: 800; }\n\n .menu-list { margin-right: 0.8rem; }\n select:focus { outline: none; }\n .menu-list-item { background: ${theme.itemBackground}; color: ${theme.itemColor}; border: none; padding: 0.2rem; font-family: inherit;\n font-variant: inherit; border-radius: var(--rounded); font-weight: 800; }\n\n .menu-chart-title { padding: 0; font-size: 0.8rem; font-weight: 800; align-items: center}\n .menu-chart-canvas { background: transparent; margin: 0.2rem 0 0.2rem 0.6rem; }\n \n .menu-button { border: 0; background: ${theme.buttonBackground}; width: -webkit-fill-available; padding: 8px; margin: 8px; cursor: pointer; box-shadow: 4px 4px 4px 0 dimgrey;\n border-radius: var(--rounded); justify-content: center; font-family: inherit; font-variant: inherit; font-size: 1rem; font-weight: 800; }\n .menu-button:hover { background: ${theme.buttonHover}; box-shadow: 4px 4px 4px 0 black; }\n .menu-button:focus { outline: none; }\n\n .menu-checkbox { width: 2.8rem; height: 1rem; background: ${theme.itemBackground}; margin: 0.5rem 0.5rem 0 0; position: relative; border-radius: var(--rounded); }\n .menu-checkbox:after { content: 'OFF'; color: ${theme.checkboxOff}; position: absolute; right: 0.2rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox:before { content: 'ON'; color: ${theme.checkboxOn}; position: absolute; left: 0.3rem; top: -0.4rem; font-weight: 800; font-size: 0.5rem; }\n .menu-checkbox-label { width: 1.3rem; height: 0.8rem; cursor: pointer; position: absolute; top: 0.1rem; left: 0.1rem; z-index: 1; background: ${theme.checkboxOff};\n border-radius: var(--rounded); transition: left 0.6s ease; }\n\n input[type=checkbox] { visibility: hidden; }\n input[type=checkbox]:checked + label { left: 1.4rem; background: ${theme.checkboxOn}; }\n\n .menu-range { margin: 0.2rem 0.5rem 0 0; width: 3.5rem; background: transparent; color: ${theme.rangeBackground}; }\n .menu-range:before { color: ${theme.rangeLabel}; margin: 0 0.4rem 0 0; font-weight: 800; font-size: 0.6rem; position: relative; top: 0.3rem; content: attr(value); }\n\n input[type=range] { -webkit-appearance: none; }\n input[type=range]::-webkit-slider-runnable-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-moz-range-track { width: 100%; height: 1rem; cursor: pointer; background: ${theme.itemBackground}; border-radius: var(--rounded); border: 1px; }\n input[type=range]::-webkit-slider-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n input[type=range]::-moz-range-thumb { border: 1px solid #000000; margin-top: 0.05rem; height: 0.9rem; width: 1rem; border-radius: var(--rounded); background: ${theme.rangeBackground}; cursor: pointer; -webkit-appearance: none; }\n\n .svg-background { fill:darkslategrey; cursor:pointer; opacity: 0.6; }\n .svg-foreground { fill:white; cursor:pointer; opacity: 0.8; }\n `;\n const el = document.createElement('style');\n el.innerHTML = css;\n document.getElementsByTagName('head')[0].appendChild(el);\n CSScreated = true;\n}\n\nclass Menu {\n constructor(parent, title, position, userTheme) {\n if (userTheme) theme = { ...theme, ...userTheme };\n createCSS();\n this.createMenu(parent, title, position);\n this.id = 0;\n this.instance = instance;\n instance++;\n this._maxFPS = 0;\n this.hidden = 0;\n }\n\n createMenu(parent, title = '', position = { top: null, left: null, bottom: null, right: null }) {\n this.menu = document.createElement('div');\n this.menu.id = `menu-${instance}`;\n this.menu.className = 'menu';\n if (position) {\n if (position.top) this.menu.style.top = position.top;\n if (position.bottom) this.menu.style.bottom = position.bottom;\n if (position.left) this.menu.style.left = position.left;\n if (position.right) this.menu.style.right = position.right;\n }\n\n this.container = document.createElement('div');\n this.container.id = `menu-container-${instance}`;\n this.container.className = 'menu-container menu-container-fadein';\n\n // set menu title with pulldown arrow\n const elTitle = document.createElement('div');\n elTitle.className = 'menu-title';\n elTitle.id = `menu-title-${instance}`;\n const svg = ``;\n if (title) elTitle.innerHTML = `${title}${svg}`;\n this.menu.appendChild(elTitle);\n elTitle.addEventListener('click', () => {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n this.menu.style.borderStyle = this.container.classList.contains('menu-container-fadeout') ? 'none' : 'solid';\n });\n\n this.menu.appendChild(this.container);\n if (typeof parent === 'object') parent.appendChild(this.menu);\n else document.getElementById(parent).appendChild(this.menu);\n }\n\n get newID() {\n this.id++;\n return `menu-${this.instance}-${this.id}`;\n }\n\n get ID() {\n return `menu-${this.instance}-${this.id}`;\n }\n\n get width() {\n return this.menu.offsetWidth;\n }\n\n get height() {\n return this.menu.offsetHeight;\n }\n\n hide() {\n if (this.container.classList.contains('menu-container-fadein')) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n }\n }\n\n visible() {\n return (this.container.classList.contains('menu-container-fadein'));\n }\n\n toggle(evt) {\n this.container.classList.toggle('menu-container-fadeout');\n this.container.classList.toggle('menu-container-fadein');\n if (this.container.classList.contains('menu-container-fadein') && evt) {\n const x = evt.x || (evt.touches && evt.touches[0] ? evt.touches[0].pageX : null);\n // const y = evt.y || (evt.touches && evt.touches[0] ? evt.touches[0].pageY : null);\n if (x) this.menu.style.left = `${x - (this.menu.offsetWidth / 2)}px`;\n // if (y) this.menu.style.top = '5.5rem'; // `${evt.y + 55}px`;\n if (this.menu.offsetLeft < 0) this.menu.style.left = 0;\n if ((this.menu.offsetLeft + this.menu.offsetWidth) > window.innerWidth) {\n this.menu.style.left = null;\n this.menu.style.right = 0;\n }\n this.menu.style.borderStyle = 'solid';\n } else {\n this.menu.style.borderStyle = 'none';\n }\n }\n\n addTitle(title) {\n const el = document.createElement('div');\n el.className = 'menu-title';\n el.id = this.newID;\n el.innerHTML = title;\n this.menu.appendChild(el);\n el.addEventListener('click', () => {\n this.hidden = !this.hidden;\n const all = document.getElementsByClassName('menu');\n for (const item of all) {\n item.style.display = this.hidden ? 'none' : 'block';\n }\n });\n return el;\n }\n\n addLabel(title) {\n const el = document.createElement('div');\n el.className = 'menu-item menu-label';\n el.id = this.newID;\n el.innerHTML = title;\n this.container.appendChild(el);\n return el;\n }\n\n addBool(title, object, variable, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = evt.target.checked;\n if (callback) callback(evt.target.checked);\n });\n return el;\n }\n\n async addList(title, items, selected, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n let options = '';\n for (const item of items) {\n const def = item === selected ? 'selected' : '';\n options += ``;\n }\n el.innerHTML = `${title}`;\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n if (callback) callback(items[evt.target.selectedIndex]);\n });\n return el;\n }\n\n addRange(title, object, variable, min, max, step, callback) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n el.addEventListener('change', (evt) => {\n object[variable] = parseInt(evt.target.value) === parseFloat(evt.target.value) ? parseInt(evt.target.value) : parseFloat(evt.target.value);\n evt.target.setAttribute('value', evt.target.value);\n if (callback) callback(evt.target.value);\n });\n el.input = el.children[0];\n return el;\n }\n\n addHTML(html) {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = this.newID;\n if (html) el.innerHTML = html;\n this.container.appendChild(el);\n return el;\n }\n\n addButton(titleOn, titleOff, callback) {\n const el = document.createElement('button');\n el.className = 'menu-item menu-button';\n el.style.fontFamily = document.body.style.fontFamily;\n el.style.fontSize = document.body.style.fontSize;\n el.style.fontVariant = document.body.style.fontVariant;\n el.type = 'button';\n el.id = this.newID;\n el.innerText = titleOn;\n this.container.appendChild(el);\n el.addEventListener('click', () => {\n if (el.innerText === titleOn) el.innerText = titleOff;\n else el.innerText = titleOn;\n if (callback) callback(el.innerText !== titleOn);\n });\n return el;\n }\n\n addValue(title, val, suffix = '') {\n const el = document.createElement('div');\n el.className = 'menu-item';\n el.id = `menu-val-${title}`;\n el.innerText = `${title}: ${val}${suffix}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n updateValue(title, val, suffix = '') {\n const el = document.getElementById(`menu-val-${title}`);\n if (el) el.innerText = `${title}: ${val}${suffix}`;\n else this.addValue(title, val);\n }\n\n addChart(title, id, width = 150, height = 40, color) {\n if (color) theme.chartColor = color;\n const el = document.createElement('div');\n el.className = 'menu-item menu-chart-title';\n el.id = this.newID;\n el.innerHTML = `${title}`;\n this.container.appendChild(el);\n return el;\n }\n\n // eslint-disable-next-line class-methods-use-this\n async updateChart(id, values) {\n if (!values || (values.length === 0)) return;\n const canvas = document.getElementById(`menu-canvas-${id}`);\n if (!canvas) return;\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = theme.background;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n const width = canvas.width / values.length;\n const max = 1 + Math.max(...values);\n const height = canvas.height / max;\n for (const i in values) {\n const gradient = ctx.createLinearGradient(0, (max - values[i]) * height, 0, 0);\n gradient.addColorStop(0.1, theme.chartColor);\n gradient.addColorStop(0.4, theme.background);\n ctx.fillStyle = gradient;\n ctx.fillRect(i * width, 0, width - 4, canvas.height);\n ctx.fillStyle = theme.background;\n ctx.font = `${width / 1.5}px \"Segoe UI\"`;\n ctx.fillText(Math.round(values[i]), i * width + 1, canvas.height - 1, width - 1);\n }\n }\n}\n\nexport default Menu;\n", "/* eslint-disable max-len */\n\n// based on: https://github.com/munrocket/gl-bench\n\nconst UICSS = `\n #gl-bench { position: absolute; right: 1rem; bottom: 1rem; z-index:1000; -webkit-user-select: none; -moz-user-select: none; user-select: none; }\n #gl-bench div { position: relative; display: block; margin: 4px; padding: 0 7px 0 10px; background: darkslategray; border-radius: 0.2rem; cursor: pointer; opacity: 0.9; }\n #gl-bench svg { height: 60px; margin: 0 0px 0px 4px; }\n #gl-bench text { font-size: 16px; font-family: 'Lato', 'Segoe UI'; dominant-baseline: middle; text-anchor: middle; }\n #gl-bench .gl-mem { font-size: 12px; fill: white; }\n #gl-bench .gl-fps { font-size: 13px; fill: white; }\n #gl-bench line { stroke-width: 5; stroke: white; stroke-linecap: round; }\n #gl-bench polyline { fill: none; stroke: white; stroke-linecap: round; stroke-linejoin: round; stroke-width: 3.5; }\n #gl-bench rect { fill: black; }\n #gl-bench .opacity { stroke: black; }\n `;\n\nconst UISVG = `\n \n
\n
\n
\n
\n `;\n\nclass GLBench {\n /** GLBench constructor\n * @param { WebGLRenderingContext | WebGL2RenderingContext } gl context\n * @param { Object | undefined } settings additional settings\n */\n constructor(gl, settings = {}) {\n this.css = UICSS;\n this.svg = UISVG;\n this.paramLogger = () => {};\n this.chartLogger = () => {};\n this.chartLen = 20;\n this.chartHz = 20;\n\n this.names = [];\n this.cpuAccums = [];\n this.gpuAccums = [];\n this.activeAccums = [];\n this.chart = new Array(this.chartLen);\n this.now = () => ((performance && performance.now) ? performance.now() : Date.now());\n this.updateUI = () => {\n [].forEach.call(this.nodes['gl-gpu-svg'], (node) => node.style.display = this.trackGPU ? 'inline' : 'none');\n };\n\n Object.assign(this, settings);\n this.detected = 0;\n this.finished = [];\n this.isFramebuffer = 0;\n this.frameId = 0;\n\n // 120hz device detection\n let rafId; let n = 0; let\n t0;\n const loop = (t) => {\n if (++n < 20) {\n rafId = requestAnimationFrame(loop);\n } else {\n this.detected = Math.ceil(1e3 * n / (t - t0) / 70);\n cancelAnimationFrame(rafId);\n }\n if (!t0) t0 = t;\n };\n requestAnimationFrame(loop);\n\n // attach gpu profilers\n if (gl) {\n const glFinish = async (t, activeAccums) => Promise.resolve(setTimeout(() => {\n gl.getError();\n const dt = this.now() - t;\n activeAccums.forEach((active, i) => {\n if (active) this.gpuAccums[i] += dt;\n });\n }, 0));\n\n const addProfiler = (fn, self, target) => {\n const t = self.now();\n // eslint-disable-next-line prefer-rest-params\n fn.apply(target, arguments);\n if (self.trackGPU) self.finished.push(glFinish(t, self.activeAccums.slice(0)));\n };\n\n /* ['drawArrays', 'drawElements', 'drawArraysInstanced', 'drawBuffers', 'drawElementsInstanced', 'drawRangeElements'].forEach((fn) => {\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n }\n });\n */\n const fn = 'drawElements';\n if (gl[fn]) {\n gl[fn] = addProfiler(gl[fn], this, gl);\n } else {\n // eslint-disable-next-line no-console\n console.log('bench: cannot attach to webgl function');\n }\n\n /*\n gl.getExtension = ((fn, self) => {\n // eslint-disable-next-line prefer-rest-params\n const ext = fn.apply(gl, arguments);\n if (ext) {\n ['drawElementsInstancedANGLE', 'drawBuffersWEBGL'].forEach((fn2) => {\n if (ext[fn2]) {\n ext[fn2] = addProfiler(ext[fn2], self, ext);\n }\n });\n }\n return ext;\n })(gl.getExtension, this);\n */\n }\n\n // init ui and ui loggers\n if (!this.withoutUI) {\n if (!this.dom) this.dom = document.body;\n const elm = document.createElement('div');\n elm.id = 'gl-bench';\n this.dom.appendChild(elm);\n this.dom.insertAdjacentHTML('afterbegin', '');\n this.dom = elm;\n this.dom.addEventListener('click', () => {\n this.trackGPU = !this.trackGPU;\n this.updateUI();\n });\n\n this.paramLogger = ((logger, dom, names) => {\n const classes = ['gl-cpu', 'gl-gpu', 'gl-mem', 'gl-fps', 'gl-gpu-svg', 'gl-chart'];\n const nodes = { ...classes };\n classes.forEach((c) => nodes[c] = dom.getElementsByClassName(c));\n this.nodes = nodes;\n return (i, cpu, gpu, mem, fps, totalTime, frameId) => {\n nodes['gl-cpu'][i].style.strokeDasharray = (cpu * 0.27).toFixed(0) + ' 100';\n nodes['gl-gpu'][i].style.strokeDasharray = (gpu * 0.27).toFixed(0) + ' 100';\n // eslint-disable-next-line no-nested-ternary\n nodes['gl-mem'][i].innerHTML = names[i] ? names[i] : (mem ? 'mem: ' + mem.toFixed(0) + 'mb' : '');\n nodes['gl-fps'][i].innerHTML = 'FPS: ' + fps.toFixed(1);\n logger(names[i], cpu, gpu, mem, fps, totalTime, frameId);\n };\n })(this.paramLogger, this.dom, this.names);\n\n this.chartLogger = ((logger, dom) => {\n const nodes = { 'gl-chart': dom.getElementsByClassName('gl-chart') };\n return (i, chart, circularId) => {\n let points = '';\n const len = chart.length;\n for (let j = 0; j < len; j++) {\n const id = (circularId + j + 1) % len;\n if (chart[id] !== undefined) points = points + ' ' + (55 * j / (len - 1)).toFixed(1) + ',' + (45 - chart[id] * 22 / 60 / this.detected).toFixed(1);\n }\n nodes['gl-chart'][i].setAttribute('points', points);\n logger(this.names[i], chart, circularId);\n };\n })(this.chartLogger, this.dom);\n }\n }\n\n /**\n * Explicit UI add\n * @param { string | undefined } name\n */\n addUI(name) {\n if (this.names.indexOf(name) === -1) {\n this.names.push(name);\n if (this.dom) {\n this.dom.insertAdjacentHTML('beforeend', this.svg);\n this.updateUI();\n }\n this.cpuAccums.push(0);\n this.gpuAccums.push(0);\n this.activeAccums.push(false);\n }\n }\n\n /**\n * Increase frameID\n * @param { number | undefined } now\n */\n nextFrame(now) {\n this.frameId++;\n const t = now || this.now();\n\n // params\n if (this.frameId <= 1) {\n this.paramFrame = this.frameId;\n this.paramTime = t;\n } else {\n const duration = t - this.paramTime;\n if (duration >= 1e3) {\n const frameCount = this.frameId - this.paramFrame;\n const fps = frameCount / duration * 1e3;\n for (let i = 0; i < this.names.length; i++) {\n const cpu = this.cpuAccums[i] / duration * 100;\n const gpu = this.gpuAccums[i] / duration * 100;\n const mem = (performance && performance.memory) ? performance.memory.usedJSHeapSize / (1 << 20) : 0;\n this.paramLogger(i, cpu, gpu, mem, fps, duration, frameCount);\n this.cpuAccums[i] = 0;\n Promise.all(this.finished).then(() => {\n this.gpuAccums[i] = 0;\n this.finished = [];\n });\n }\n this.paramFrame = this.frameId;\n this.paramTime = t;\n }\n }\n\n // chart\n if (!this.detected || !this.chartFrame) {\n this.chartFrame = this.frameId;\n this.chartTime = t;\n this.circularId = 0;\n } else {\n const timespan = t - this.chartTime;\n let hz = this.chartHz * timespan / 1e3;\n while (--hz > 0 && this.detected) {\n const frameCount = this.frameId - this.chartFrame;\n const fps = frameCount / timespan * 1e3;\n this.chart[this.circularId % this.chartLen] = fps;\n for (let i = 0; i < this.names.length; i++) this.chartLogger(i, this.chart, this.circularId);\n this.circularId++;\n this.chartFrame = this.frameId;\n this.chartTime = t;\n }\n }\n }\n\n /**\n * Begin named measurement\n * @param { string | undefined } name\n */\n begin(name) {\n this.updateAccums(name);\n }\n\n /**\n * End named measure\n * @param { string | undefined } name\n */\n end(name) {\n this.updateAccums(name);\n }\n\n updateAccums(name) {\n let nameId = this.names.indexOf(name);\n if (nameId === -1) {\n nameId = this.names.length;\n this.addUI(name);\n }\n\n const t = this.now();\n const dt = t - this.t0;\n for (let i = 0; i < nameId + 1; i++) {\n if (this.activeAccums[i]) this.cpuAccums[i] += dt;\n }\n this.activeAccums[nameId] = !this.activeAccums[nameId];\n this.t0 = t;\n }\n}\n\nexport default GLBench;\n", "import Human from '../dist/human.esm.js';\nimport draw from './draw.js';\nimport Menu from './menu.js';\nimport GLBench from './gl-bench.js';\n\nconst userConfig = {}; // add any user configuration overrides\n\nconst human = new Human(userConfig);\n\n// ui options\nconst ui = {\n baseColor: 'rgba(173, 216, 230, 0.3)', // 'lightblue' with light alpha channel\n baseBackground: 'rgba(50, 50, 50, 1)', // 'grey'\n baseLabel: 'rgba(173, 216, 230, 1)', // 'lightblue' with dark alpha channel\n baseFontProto: 'small-caps {size} \"Segoe UI\"',\n baseLineWidth: 12,\n crop: true,\n columns: 2,\n busy: false,\n facing: true,\n useWorker: false,\n worker: 'demo/worker.js',\n samples: ['../assets/sample6.jpg', '../assets/sample1.jpg', '../assets/sample4.jpg', '../assets/sample5.jpg', '../assets/sample3.jpg', '../assets/sample2.jpg'],\n compare: '../assets/sample-me.jpg',\n drawBoxes: true,\n drawPoints: false,\n drawPolygons: true,\n fillPolygons: false,\n useDepth: true,\n console: true,\n maxFPSframes: 10,\n modelsPreload: true,\n modelsWarmup: true,\n menuWidth: 0,\n menuHeight: 0,\n camera: {},\n detectFPS: [],\n drawFPS: [],\n buffered: false,\n drawThread: null,\n detectThread: null,\n framesDraw: 0,\n framesDetect: 0,\n bench: false,\n};\n\n// global variables\nconst menu = {};\nlet worker;\nlet bench;\nlet lastDetectedResult = {};\n\n// helper function: translates json to human readable string\nfunction str(...msg) {\n if (!Array.isArray(msg)) return msg;\n let line = '';\n for (const entry of msg) {\n if (typeof entry === 'object') line += JSON.stringify(entry).replace(/{|}|\"|\\[|\\]/g, '').replace(/,/g, ', ');\n else line += entry;\n }\n return line;\n}\n\n// helper function: wrapper around console output\nconst log = (...msg) => {\n const dt = new Date();\n const ts = `${dt.getHours().toString().padStart(2, '0')}:${dt.getMinutes().toString().padStart(2, '0')}:${dt.getSeconds().toString().padStart(2, '0')}.${dt.getMilliseconds().toString().padStart(3, '0')}`;\n // eslint-disable-next-line no-console\n if (ui.console) console.log(ts, ...msg);\n};\n\nconst status = (msg) => {\n // eslint-disable-next-line no-console\n document.getElementById('status').innerText = msg;\n};\n\nlet original;\nasync function calcSimmilariry(result) {\n document.getElementById('compare-container').style.display = human.config.face.embedding.enabled ? 'block' : 'none';\n if (!human.config.face.embedding.enabled) return;\n if ((result?.face?.length > 0) && (result?.face[0].embedding?.length !== 192)) return;\n if (!original) {\n original = result;\n document.getElementById('compare-canvas').getContext('2d').drawImage(original.canvas, 0, 0, 200, 200);\n }\n const simmilarity = human.simmilarity(original?.face[0]?.embedding, result?.face[0]?.embedding);\n document.getElementById('simmilarity').innerText = `simmilarity: ${Math.trunc(1000 * simmilarity) / 10}%`;\n}\n\n// draws processed results and starts processing of a next frame\nlet lastDraw = performance.now();\nasync function drawResults(input) {\n const result = lastDetectedResult;\n const canvas = document.getElementById('canvas');\n\n // update draw fps data\n ui.drawFPS.push(1000 / (performance.now() - lastDraw));\n if (ui.drawFPS.length > ui.maxFPSframes) ui.drawFPS.shift();\n lastDraw = performance.now();\n\n // enable for continous performance monitoring\n // console.log(result.performance);\n\n // draw fps chart\n await menu.process.updateChart('FPS', ui.detectFPS);\n\n // get updated canvas\n if (ui.buffered || !result.canvas) result.canvas = await human.image(input, userConfig);\n\n // draw image from video\n const ctx = canvas.getContext('2d');\n ctx.fillStyle = ui.baseBackground;\n ctx.fillRect(0, 0, canvas.width, canvas.height);\n if (result.canvas) {\n if (result.canvas.width !== canvas.width) canvas.width = result.canvas.width;\n if (result.canvas.height !== canvas.height) canvas.height = result.canvas.height;\n ctx.drawImage(result.canvas, 0, 0, result.canvas.width, result.canvas.height, 0, 0, result.canvas.width, result.canvas.height);\n } else {\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n }\n\n // draw all results\n await draw.face(result.face, canvas, ui, human.facemesh.triangulation);\n await draw.body(result.body, canvas, ui);\n await draw.hand(result.hand, canvas, ui);\n await draw.gesture(result.gesture, canvas, ui);\n await calcSimmilariry(result);\n\n // update log\n const engine = human.tf.engine();\n const gpu = engine.backendInstance ? `gpu: ${(engine.backendInstance.numBytesInGPU ? engine.backendInstance.numBytesInGPU : 0).toLocaleString()} bytes` : '';\n const memory = `system: ${engine.state.numBytes.toLocaleString()} bytes ${gpu} | tensors: ${engine.state.numTensors.toLocaleString()}`;\n const processing = result.canvas ? `processing: ${result.canvas.width} x ${result.canvas.height}` : '';\n const avgDetect = Math.trunc(10 * ui.detectFPS.reduce((a, b) => a + b, 0) / ui.detectFPS.length) / 10;\n const avgDraw = Math.trunc(10 * ui.drawFPS.reduce((a, b) => a + b, 0) / ui.drawFPS.length) / 10;\n const warning = (ui.detectFPS.length > 5) && (avgDetect < 5) ? 'warning: your performance is low: try switching to higher performance backend, lowering resolution or disabling some models' : '';\n document.getElementById('log').innerText = `\n video: ${ui.camera.name} | facing: ${ui.camera.facing} | screen: ${window.innerWidth} x ${window.innerHeight} camera: ${ui.camera.width} x ${ui.camera.height} ${processing}\n backend: ${human.tf.getBackend()} | ${memory}\n performance: ${str(result.performance)}ms FPS process:${avgDetect} refresh:${avgDraw}\n ${warning}\n `;\n\n ui.framesDraw++;\n ui.lastFrame = performance.now();\n // if buffered, immediate loop but limit frame rate although it's going to run slower as JS is singlethreaded\n if (ui.buffered) {\n ui.drawThread = requestAnimationFrame(() => drawResults(input, canvas));\n } else if (!ui.buffered && ui.drawThread) {\n log('stopping buffered refresh');\n cancelAnimationFrame(ui.drawThread);\n ui.drawThread = null;\n }\n}\n\n// setup webcam\nasync function setupCamera() {\n if (ui.busy) return null;\n ui.busy = true;\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n const output = document.getElementById('log');\n const live = video.srcObject ? ((video.srcObject.getVideoTracks()[0].readyState === 'live') && (video.readyState > 2) && (!video.paused)) : false;\n let msg = '';\n status('setting up camera');\n // setup webcam. note that navigator.mediaDevices requires that page is accessed via https\n if (!navigator.mediaDevices) {\n msg = 'camera access not supported';\n output.innerText += `\\n${msg}`;\n log(msg);\n status(msg);\n ui.busy = false;\n return msg;\n }\n let stream;\n const constraints = {\n audio: false,\n video: { facingMode: ui.facing ? 'user' : 'environment', resizeMode: ui.crop ? 'crop-and-scale' : 'none' },\n };\n if (window.innerWidth > window.innerHeight) constraints.video.width = { ideal: window.innerWidth };\n else constraints.video.height = { ideal: (window.innerHeight - document.getElementById('menubar').offsetHeight) };\n try {\n stream = await navigator.mediaDevices.getUserMedia(constraints);\n } catch (err) {\n if (err.name === 'PermissionDeniedError' || err.name === 'NotAllowedError') msg = 'camera permission denied';\n else if (err.name === 'SourceUnavailableError') msg = 'camera not available';\n else msg = `camera error: ${err.message || err}`;\n output.innerText += `\\n${msg}`;\n status(msg);\n log('camera error:', err);\n ui.busy = false;\n return msg;\n }\n if (stream) video.srcObject = stream;\n else {\n ui.busy = false;\n return 'camera stream empty';\n }\n const track = stream.getVideoTracks()[0];\n const settings = track.getSettings();\n // log('camera constraints:', constraints, 'window:', { width: window.innerWidth, height: window.innerHeight }, 'settings:', settings, 'track:', track);\n ui.camera = { name: track.label?.toLowerCase(), width: settings.width, height: settings.height, facing: settings.facingMode === 'user' ? 'front' : 'back' };\n return new Promise((resolve) => {\n video.onloadeddata = async () => {\n video.width = video.videoWidth;\n video.height = video.videoHeight;\n canvas.width = video.width;\n canvas.height = video.height;\n canvas.style.width = canvas.width > canvas.height ? '100vw' : '';\n canvas.style.height = canvas.width > canvas.height ? '' : '100vh';\n ui.menuWidth.input.setAttribute('value', video.width);\n ui.menuHeight.input.setAttribute('value', video.height);\n // silly font resizing for paint-on-canvas since viewport can be zoomed\n const size = Math.trunc(window.devicePixelRatio * (8 + (4 * canvas.width / window.innerWidth)));\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = size + 4;\n if (live) video.play();\n // eslint-disable-next-line no-use-before-define\n if (live && !ui.detectThread) runHumanDetect(video, canvas);\n ui.busy = false;\n // do once more because onresize events can be delayed or skipped\n // if (video.width > window.innerWidth) await setupCamera();\n status('');\n resolve();\n };\n });\n}\n\nfunction initPerfMonitor() {\n if (!bench) {\n const gl = null;\n // cosnt gl = human.tf.engine().backend.gpgpu.gl;\n // if (!gl) log('bench cannot get tensorflow webgl context');\n bench = new GLBench(gl, {\n trackGPU: false, // this is really slow\n chartHz: 20,\n chartLen: 20,\n });\n bench.begin();\n }\n}\n\n// wrapper for worker.postmessage that creates worker if one does not exist\nfunction webWorker(input, image, canvas, timestamp) {\n if (!worker) {\n // create new webworker and add event handler only once\n log('creating worker thread');\n worker = new Worker(ui.worker, { type: 'module' });\n // after receiving message from webworker, parse&draw results and send new frame for processing\n worker.addEventListener('message', (msg) => {\n if (msg.data.result.performance && msg.data.result.performance.total) ui.detectFPS.push(1000 / msg.data.result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n lastDetectedResult = msg.data.result;\n ui.framesDetect++;\n if (!ui.drawThread) drawResults(input);\n // eslint-disable-next-line no-use-before-define\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n });\n }\n // pass image data as arraybuffer to worker by reference to avoid copy\n worker.postMessage({ image: image.data.buffer, width: canvas.width, height: canvas.height, userConfig }, [image.data.buffer]);\n}\n\n// main processing function when input is webcam, can use direct invocation or web worker\nfunction runHumanDetect(input, canvas, timestamp) {\n // if live video\n const live = input.srcObject && (input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState > 2) && (!input.paused);\n if (!live && input.srcObject) {\n // stop ui refresh\n if (ui.drawThread) cancelAnimationFrame(ui.drawThread);\n if (ui.detectThread) cancelAnimationFrame(ui.detectThread);\n ui.drawThread = null;\n ui.detectThread = null;\n // if we want to continue and camera not ready, retry in 0.5sec, else just give up\n if (input.paused) log('camera paused');\n else if ((input.srcObject.getVideoTracks()[0].readyState === 'live') && (input.readyState <= 2)) setTimeout(() => runHumanDetect(input, canvas), 500);\n else log(`camera not ready: track state: ${input.srcObject?.getVideoTracks()[0].readyState} stream state: ${input.readyState}`);\n clearTimeout(ui.drawThread);\n ui.drawThread = null;\n log('frame statistics: process:', ui.framesDetect, 'refresh:', ui.framesDraw);\n return;\n }\n status('');\n if (ui.useWorker) {\n // get image data from video as we cannot send html objects to webworker\n const offscreen = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(canvas.width, canvas.height) : document.createElement('canvas');\n offscreen.width = canvas.width;\n offscreen.height = canvas.height;\n const ctx = offscreen.getContext('2d');\n ctx.drawImage(input, 0, 0, input.width, input.height, 0, 0, canvas.width, canvas.height);\n const data = ctx.getImageData(0, 0, canvas.width, canvas.height);\n // perform detection in worker\n webWorker(input, data, canvas, userConfig, timestamp);\n } else {\n human.detect(input, userConfig).then((result) => {\n if (result.performance && result.performance.total) ui.detectFPS.push(1000 / result.performance.total);\n if (ui.detectFPS.length > ui.maxFPSframes) ui.detectFPS.shift();\n if (ui.bench) {\n if (!bench) initPerfMonitor();\n bench.nextFrame(timestamp);\n }\n if (document.getElementById('gl-bench')) document.getElementById('gl-bench').style.display = ui.bench ? 'block' : 'none';\n if (result.error) {\n log(result.error);\n document.getElementById('log').innerText += `\\nHuman error: ${result.error}`;\n } else {\n lastDetectedResult = result;\n if (!ui.drawThread) drawResults(input);\n ui.framesDetect++;\n ui.detectThread = requestAnimationFrame((now) => runHumanDetect(input, canvas, now));\n }\n });\n }\n}\n\n// main processing function when input is image, can use direct invocation or web worker\nasync function processImage(input) {\n return new Promise((resolve) => {\n const image = new Image();\n image.onload = async () => {\n log('Processing image:', image.src);\n const canvas = document.getElementById('canvas');\n image.width = image.naturalWidth;\n image.height = image.naturalHeight;\n canvas.width = human.config.filter.width && human.config.filter.width > 0 ? human.config.filter.width : image.naturalWidth;\n canvas.height = human.config.filter.height && human.config.filter.height > 0 ? human.config.filter.height : image.naturalHeight;\n const result = await human.detect(image, userConfig);\n lastDetectedResult = result;\n await drawResults(image);\n const thumb = document.createElement('canvas');\n thumb.className = 'thumbnail';\n thumb.width = window.innerWidth / (ui.columns + 0.1);\n thumb.height = canvas.height / (window.innerWidth / thumb.width);\n const ctx = thumb.getContext('2d');\n ctx.drawImage(canvas, 0, 0, canvas.width, canvas.height, 0, 0, thumb.width, thumb.height);\n document.getElementById('samples-container').appendChild(thumb);\n image.src = '';\n resolve(true);\n };\n image.src = input;\n });\n}\n\n// just initialize everything and call main function\nasync function detectVideo() {\n userConfig.videoOptimized = true;\n document.getElementById('samples-container').style.display = 'none';\n document.getElementById('canvas').style.display = 'block';\n const video = document.getElementById('video');\n const canvas = document.getElementById('canvas');\n if ((video.srcObject !== null) && !video.paused) {\n document.getElementById('play').style.display = 'block';\n document.getElementById('btnStart').className = 'button button-start';\n document.getElementById('btnStart').innerHTML = 'start
video';\n status('paused');\n video.pause();\n } else {\n const cameraError = await setupCamera();\n if (!cameraError) {\n document.getElementById('play').style.display = 'none';\n for (const m of Object.values(menu)) m.hide();\n status('');\n document.getElementById('btnStart').className = 'button button-stop';\n document.getElementById('btnStart').innerHTML = 'pause
video';\n await video.play();\n if (!ui.detectThread) runHumanDetect(video, canvas);\n } else {\n status(cameraError);\n }\n }\n}\n\n// just initialize everything and call main function\nasync function detectSampleImages() {\n document.getElementById('play').style.display = 'none';\n userConfig.videoOptimized = false;\n const size = Math.trunc(window.devicePixelRatio * (8 + (4 * ui.columns)));\n ui.baseFont = ui.baseFontProto.replace(/{size}/, `${size}px`);\n ui.baseLineHeight = size + 2;\n document.getElementById('canvas').style.display = 'none';\n document.getElementById('samples-container').style.display = 'block';\n log('Running detection of sample images');\n status('processing images');\n document.getElementById('samples-container').innerHTML = '';\n for (const image of ui.samples) await processImage(image);\n status('');\n}\n\nfunction setupMenu() {\n let x = [];\n if (window.innerWidth > 800) {\n // initial position of menu items, later it's calculated based on mouse coordinates\n x = [`${document.getElementById('btnDisplay').offsetLeft - 50}px`, `${document.getElementById('btnImage').offsetLeft - 50}px`, `${document.getElementById('btnProcess').offsetLeft - 50}px`, `${document.getElementById('btnModel').offsetLeft - 50}px`];\n } else {\n // absolute minimum spacing for menus\n x = ['0rem', '11rem', '21.1rem', '33rem'];\n }\n\n menu.display = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[0] });\n menu.display.addBool('perf monitor', ui, 'bench', (val) => ui.bench = val);\n menu.display.addBool('buffered output', ui, 'buffered', (val) => ui.buffered = val);\n menu.display.addBool('crop & scale', ui, 'crop', () => setupCamera());\n menu.display.addBool('camera facing', ui, 'facing', () => setupCamera());\n menu.display.addHTML('
');\n menu.display.addBool('use 3D depth', ui, 'useDepth');\n menu.display.addBool('draw boxes', ui, 'drawBoxes');\n menu.display.addBool('draw polygons', ui, 'drawPolygons');\n menu.display.addBool('Fill Polygons', ui, 'fillPolygons');\n menu.display.addBool('draw points', ui, 'drawPoints');\n\n menu.image = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[1] });\n menu.image.addBool('enabled', human.config.filter, 'enabled');\n ui.menuWidth = menu.image.addRange('image width', human.config.filter, 'width', 0, 3840, 10, (val) => human.config.filter.width = parseInt(val));\n ui.menuHeight = menu.image.addRange('image height', human.config.filter, 'height', 0, 2160, 10, (val) => human.config.filter.height = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addRange('brightness', human.config.filter, 'brightness', -1.0, 1.0, 0.05, (val) => human.config.filter.brightness = parseFloat(val));\n menu.image.addRange('contrast', human.config.filter, 'contrast', -1.0, 1.0, 0.05, (val) => human.config.filter.contrast = parseFloat(val));\n menu.image.addRange('sharpness', human.config.filter, 'sharpness', 0, 1.0, 0.05, (val) => human.config.filter.sharpness = parseFloat(val));\n menu.image.addRange('blur', human.config.filter, 'blur', 0, 20, 1, (val) => human.config.filter.blur = parseInt(val));\n menu.image.addRange('saturation', human.config.filter, 'saturation', -1.0, 1.0, 0.05, (val) => human.config.filter.saturation = parseFloat(val));\n menu.image.addRange('hue', human.config.filter, 'hue', 0, 360, 5, (val) => human.config.filter.hue = parseInt(val));\n menu.image.addRange('pixelate', human.config.filter, 'pixelate', 0, 32, 1, (val) => human.config.filter.pixelate = parseInt(val));\n menu.image.addHTML('
');\n menu.image.addBool('negative', human.config.filter, 'negative');\n menu.image.addBool('sepia', human.config.filter, 'sepia');\n menu.image.addBool('vintage', human.config.filter, 'vintage');\n menu.image.addBool('kodachrome', human.config.filter, 'kodachrome');\n menu.image.addBool('technicolor', human.config.filter, 'technicolor');\n menu.image.addBool('polaroid', human.config.filter, 'polaroid');\n\n menu.process = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[2] });\n menu.process.addList('backend', ['cpu', 'webgl', 'wasm'], human.config.backend, (val) => human.config.backend = val);\n menu.process.addBool('async operations', human.config, 'async', (val) => human.config.async = val);\n menu.process.addBool('enable profiler', human.config, 'profile', (val) => human.config.profile = val);\n menu.process.addBool('memory shield', human.config, 'deallocate', (val) => human.config.deallocate = val);\n menu.process.addBool('use web worker', ui, 'useWorker');\n menu.process.addHTML('
');\n menu.process.addLabel('model parameters');\n menu.process.addRange('max objects', human.config.face.detector, 'maxFaces', 1, 50, 1, (val) => {\n human.config.face.detector.maxFaces = parseInt(val);\n human.config.body.maxDetections = parseInt(val);\n human.config.hand.maxHands = parseInt(val);\n });\n menu.process.addRange('skip frames', human.config.face.detector, 'skipFrames', 0, 50, 1, (val) => {\n human.config.face.detector.skipFrames = parseInt(val);\n human.config.face.emotion.skipFrames = parseInt(val);\n human.config.face.age.skipFrames = parseInt(val);\n human.config.hand.skipFrames = parseInt(val);\n });\n menu.process.addRange('min confidence', human.config.face.detector, 'minConfidence', 0.0, 1.0, 0.05, (val) => {\n human.config.face.detector.minConfidence = parseFloat(val);\n human.config.face.gender.minConfidence = parseFloat(val);\n human.config.face.emotion.minConfidence = parseFloat(val);\n human.config.hand.minConfidence = parseFloat(val);\n });\n menu.process.addRange('score threshold', human.config.face.detector, 'scoreThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.scoreThreshold = parseFloat(val);\n human.config.hand.scoreThreshold = parseFloat(val);\n human.config.body.scoreThreshold = parseFloat(val);\n });\n menu.process.addRange('overlap', human.config.face.detector, 'iouThreshold', 0.1, 1.0, 0.05, (val) => {\n human.config.face.detector.iouThreshold = parseFloat(val);\n human.config.hand.iouThreshold = parseFloat(val);\n });\n menu.process.addHTML('
');\n menu.process.addButton('process sample images', 'process images', () => detectSampleImages());\n menu.process.addHTML('
');\n menu.process.addChart('FPS', 'FPS');\n\n menu.models = new Menu(document.body, '', { top: `${document.getElementById('menubar').offsetHeight}px`, left: x[3] });\n menu.models.addBool('face detect', human.config.face, 'enabled');\n menu.models.addBool('face mesh', human.config.face.mesh, 'enabled');\n menu.models.addBool('face iris', human.config.face.iris, 'enabled');\n menu.models.addBool('face age', human.config.face.age, 'enabled');\n menu.models.addBool('face gender', human.config.face.gender, 'enabled');\n menu.models.addBool('face emotion', human.config.face.emotion, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('body pose', human.config.body, 'enabled');\n menu.models.addBool('hand pose', human.config.hand, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('gestures', human.config.gesture, 'enabled');\n menu.models.addHTML('
');\n menu.models.addBool('face compare', human.config.face.embedding, 'enabled', (val) => {\n original = null;\n human.config.face.embedding.enabled = val;\n });\n\n document.getElementById('btnDisplay').addEventListener('click', (evt) => menu.display.toggle(evt));\n document.getElementById('btnImage').addEventListener('click', (evt) => menu.image.toggle(evt));\n document.getElementById('btnProcess').addEventListener('click', (evt) => menu.process.toggle(evt));\n document.getElementById('btnModel').addEventListener('click', (evt) => menu.models.toggle(evt));\n document.getElementById('btnStart').addEventListener('click', () => detectVideo());\n document.getElementById('play').addEventListener('click', () => detectVideo());\n}\n\nasync function main() {\n log('demo starting ...');\n setupMenu();\n document.getElementById('log').innerText = `Human: version ${human.version}`;\n // human.tf.ENV.set('WEBGL_FORCE_F16_TEXTURES', true);\n // this is not required, just pre-loads all models\n if (ui.modelsPreload && !ui.useWorker) {\n status('loading');\n await human.load(userConfig);\n }\n // this is not required, just pre-warms all models for faster initial inference\n if (ui.modelsWarmup && !ui.useWorker) {\n status('initializing');\n await human.warmup(userConfig);\n }\n status('human: ready');\n document.getElementById('loader').style.display = 'none';\n document.getElementById('play').style.display = 'block';\n log('ready');\n}\n\nwindow.onload = main;\nwindow.onresize = setupCamera;\n"],
+ "mappings": "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AAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,iBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,iBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,iBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,gBAAkB,kBACnB,CAAC,cAAgB,kBACjB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,gBAAkB,kBACnB,CAAC,eAAiB,kBAClB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,kBACpB,CAAC,iBAAmB,0BAGP,CACb,IAAK,GAAI,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,EACtJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GACrJ,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAC7I,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAClJ,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GACrJ,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GACpJ,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,GACjJ,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,EAAG,IAC/I,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,GAAI,EAAG,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,EAAG,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GACtJ,GAAI,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,GAClJ,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACnJ,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,IAClJ,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,EAAG,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,IAAK,IAAK,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IACnJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,EAAG,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC7I,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,EAAG,IAAK,GAAI,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GACnJ,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,EAAG,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAClJ,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAClJ,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,GAAI,GAAI,EAAG,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAChJ,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IACpJ,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GACrJ,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,GACpJ,IAAK,GAAI,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAC/I,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,IAAK,GAAI,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,GAAI,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,GAAI,GACpJ,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GACrJ,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,EAAG,IAAK,IAAK,GAAI,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,GAAI,EACpJ,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,GAAI,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAC9I,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,GAAI,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,GAAI,IAAK,EAAG,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,EAAG,GAAI,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAC9I,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAC9I,IAAK,GAAI,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAC/I,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAChJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAClJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,EAAG,IAAK,EAAG,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,GAAI,EAAG,IAAK,IAAK,IAAK,IAAK,IACpJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IACjJ,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,WAEhI,CAAC,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAC3J,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC1J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAC5J,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,G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,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,QACV,SAAU,SAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,OACV,SAAU,QAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU,OAEZ,CACE,EAAG,EACH,EAAG,EACH,SAAU,MACV,SAAU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",
"names": []
}
diff --git a/dist/demo-browser-index.json b/dist/demo-browser-index.json
index f0f1d3fe..65f73cc6 100644
--- a/dist/demo-browser-index.json
+++ b/dist/demo-browser-index.json
@@ -30,7 +30,7 @@
"imports": []
},
"dist/human.esm.js": {
- "bytes": 1783940,
+ "bytes": 1783941,
"imports": []
}
},
@@ -45,7 +45,7 @@
"exports": [],
"inputs": {
"dist/human.esm.js": {
- "bytesInOutput": 1776695
+ "bytesInOutput": 1776696
},
"demo/draw.js": {
"bytesInOutput": 7668
@@ -60,7 +60,7 @@
"bytesInOutput": 19407
}
},
- "bytes": 1830430
+ "bytes": 1830431
}
}
}
diff --git a/dist/human.esm.js b/dist/human.esm.js
index 857838fc..93e3408f 100644
--- a/dist/human.esm.js
+++ b/dist/human.esm.js
@@ -3966,7 +3966,7 @@ return a / b;`,DIV_PACKED=`
}
`}}const rotateWithOffsetConfig2={kernelName:RotateWithOffset,backendName:"webgl",kernelFunc:({inputs,attrs,backend:backend3})=>{const{image:image3}=inputs,{radians,fillValue,center}=attrs,webglBackend=backend3,program=new RotateProgram(image3.shape,radians,fillValue,center),output=webglBackend.runWebGLProgram(program,[image3],image3.dtype);return output}},SIN=CHECK_NAN_SNIPPET_UNARY+`
return sin(x);
-`,sin6=unaryKernelFunc2(SIN),sinConfig2={kernelName:Sin,backendName:"webgl",kernelFunc:sin6},SQUARE="return x * x;",square25=unaryKernelFunc2(SQUARE),squareConfig2={kernelName:Square,backendName:"webgl",kernelFunc:square25},SQUARED_DIFFERENCE="return (a - b) * (a - b);",squaredDifference3=binaryKernelFunc2({opSnippet:SQUARED_DIFFERENCE,packedOpSnippet:SQUARED_DIFFERENCE}),squaredDifferenceConfig2={kernelName:SquaredDifference,backendName:"webgl",kernelFunc:squaredDifference3},SUB="return a - b;",subKernelFunc=binaryKernelFunc2({opSnippet:SUB,packedOpSnippet:SUB,supportsComplex:!0,cpuKernelImpl:subImplCPU}),subConfig2={kernelName:Sub,backendName:"webgl",kernelFunc:subKernelFunc},TAN="return tan(x);",tan5=unaryKernelFunc2(TAN),tanConfig2={kernelName:Tan,backendName:"webgl",kernelFunc:tan5},transposeConfig2={kernelName:Transpose,backendName:"webgl",kernelFunc:({inputs,attrs,backend:backend3})=>{const{x}=inputs,{perm}=attrs,webglBackend=backend3,xRank=x.shape.length,newShape=new Array(xRank);for(let i=0;iwasmFunc8(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;const aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:kernelFunc3}}const supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast);let wasmFunc;function setupFunc(backend3){wasmFunc=backend3.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){const{inputs,backend:backend3}=args,out=backend3.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;const inputIds=inputs.map(x=>backend3.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}const addNConfig={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity4(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),inVals=backend3.typedArrayFromHeap(x),outVals=backend3.typedArrayFromHeap(out);return outVals.set(inVals),out}const identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity4};let wasmTranspose;function setup2(backend3){wasmTranspose=backend3.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose19(args){const{inputs,backend:backend3,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm);let permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}const transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose19,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend3){const xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape);let axes=originalAxes;const permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank);let xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){const newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}const reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape91};let wasmBatchMatMul;function setup5(backend3){wasmBatchMatMul=backend3.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul2(args){const{inputs,backend:backend3,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");const aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);const outShapeOuterDims=batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2),outShape=outShapeOuterDims.concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);const a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape91({inputs:{x:a},backend:backend3,attrs:{shape:a3dShape}}),b3d=reshape91({inputs:{x:b},backend:backend3,attrs:{shape:b3dShape}}),a3dId=backend3.dataIdMap.get(a3d.dataId).id,b3dId=backend3.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend3.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend3.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}const batchMatMulConfig2={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul2};function cast51(args){const{inputs:{x},attrs:{dtype},backend:backend3}=args,out=backend3.makeOutput(x.shape,dtype),inVals=backend3.typedArrayFromHeap(x),outVals=backend3.typedArrayFromHeap(out);return outVals.set(inVals),out}const castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast51};let wasmClip;function setup6(backend3){wasmClip=backend3.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(x.shape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}const clipByValueConfig={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat19(args){const{inputs,backend:backend3}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),out=backend3.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;const $inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return $inputs[0];const shapes=$inputs.map(t=>t.shape);backend_util_exports.assertParamsConsistent(shapes,axis);const batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis));let sumInnerDims=0;const innerDims=$inputs.map(input2=>{const innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend3.typedArrayFromHeap(input2)),outVals=backend3.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);const permutation=backend_util_exports.getAxesPermutation([axis],xRank);let permutedX=x;permutation!==null&&(permutedX=transpose19({inputs:{x},attrs:{perm:permutation},backend:backend3}));const permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);const permutedOut=backend3.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend3.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend3.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse12?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){const undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose19({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend3}),backend3.disposeData(permutedX.dataId),backend3.disposeData(permutedOut.dataId)}return out}const cumsumConfig={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum6};let wasmDepthToSpace;function setup11(backend3){wasmDepthToSpace=backend3.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace2(args){const{backend:backend3,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);const batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend3.makeOutput(outputShape,"float32"),xData=backend3.dataIdMap.get(x.dataId),xId=xData.id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend3.dataIdMap.get(out.dataId).id,channelsLast=dataFormat==="NHWC"?1:0;return wasmDepthToSpace(xId,blockSize,channelsLast,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}const depthToSpaceConfig={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace2};let wasmDepthwiseConv2d;function setup12(backend3){wasmDepthwiseConv2d=backend3.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d5(args){const{inputs,attrs,backend:backend3}=args,{x,filter}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad11,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad11,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}const depthwiseConv2dNativeConfig2={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d5},supportsFullBroadcast2=!0,divConfig3=createBinaryKernelConfig(Div,supportsFullBroadcast2),supportsFullBroadcast3=!1,equalConfig=createBinaryKernelConfig(Equal,supportsFullBroadcast3,"bool"),expConfig2=createUnaryKernelConfig(Exp);function fill6(args){const{attrs:{shape,value,dtype},backend:backend3}=args,out=backend3.makeOutput(shape,dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(value),out}const fillConfig2={kernelName:Fill,backendName:"wasm",kernelFunc:fill6};let wasmFlipLeftRight;function setup13(backend3){wasmFlipLeftRight=backend3.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){const{inputs,backend:backend3}=args,{image:image3}=inputs,out=backend3.makeOutput(image3.shape,image3.dtype),imageId=backend3.dataIdMap.get(image3.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}const flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},supportsFullBroadcast4=!1,floorDivConfig=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast4);let wasmBatchNorm;function setup14(backend3){wasmBatchNorm=backend3.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){const{backend:backend3,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean7,variance,offset,scale:scale2}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,meanId=backend3.dataIdMap.get(mean7.dataId).id,varianceId=backend3.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend3.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend3.dataIdMap.get(scale2.dataId).id:0,out=backend3.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;const outId=backend3.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}const fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm};let wasmFusedConv2d;function setup15(backend3){wasmFusedConv2d=backend3.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d(args){const{inputs,attrs,backend:backend3}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad11,dilations,dataFormat,dimRoundingMode,activation:activation2}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad11,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);const xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels;let biasId=0;if(bias!=null){const biasData=backend3.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}const filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend3.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,outId),out}const fusedConv2DConfig2={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d};let wasmFusedDepthwiseConv2d;function setup16(backend3){wasmFusedDepthwiseConv2d=backend3.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){const{inputs,attrs,backend:backend3}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad11,dilations,dataFormat,dimRoundingMode,activation:activation2}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad11,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);const xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels;let biasId=0;if(bias!=null){const biasData=backend3.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}const filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend3.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,outId),out}const fusedDepthwiseConv2DConfig2={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d};let wasmGatherNd;function setup17(backend3){wasmGatherNd=backend3.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd(args){const{backend:backend3,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend3.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;const indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xData=backend3.dataIdMap.get(params.dataId),xId=xData.id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}const gatherNdConfig={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd};let wasmGather;function setup18(backend3){wasmGather=backend3.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV2(args){const{backend:backend3,inputs,attrs}=args,{x,indices}=inputs,{axis}=attrs,newShape=x.shape.slice();newShape[axis]=util_exports.sizeFromShape(indices.shape);const stridesSize=x.shape.length-1,out=backend3.makeOutput(newShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;const xData=backend3.dataIdMap.get(x.dataId),xId=xData.id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,outId=backend3.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(newShape)).buffer);wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,axis,outStridesBytes,outId);const parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis);return out.shape=shapeInfo.outputShape,out}const gatherV2Config={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV2},supportsFullBroadcast5=!1,greaterConfig=createBinaryKernelConfig(Greater,supportsFullBroadcast5,"bool"),supportsFullBroadcast6=!1,greaterEqualConfig=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessConfig=createBinaryKernelConfig(Less,supportsFullBroadcast7,"bool"),supportsFullBroadcast8=!1,lessEqualConfig=createBinaryKernelConfig(LessEqual,supportsFullBroadcast8,"bool"),logConfig2=createUnaryKernelConfig(Log),supportsFullBroadcast9=!1,logicalAndConfig=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast9,"bool");let wasmMax;function setup19(backend3){wasmMax=backend3.wasm.cwrap(Max,null,["number, number, number"])}function max9(args){const{backend:backend3,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}const inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max9},supportsFullBroadcast10=!1,maximumConfig=createBinaryKernelConfig(Maximum,supportsFullBroadcast10);let wasmMaxPool;function setup20(backend3){wasmMaxPool=backend3.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){const{inputs,attrs,backend:backend3}=args,x=inputs.x,xId=backend3.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad11,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad11,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}const maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4};let wasmMin;function setup21(backend3){wasmMin=backend3.wasm.cwrap(Min,null,["number, number, number"])}function min7(args){const{backend:backend3,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}const inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const minConfig={kernelName:Min,backendName:"wasm",setupFunc:setup21,kernelFunc:min7},supportsFullBroadcast11=!1,minimumConfig=createBinaryKernelConfig(Minimum,supportsFullBroadcast11),supportsFullBroadcast12=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast12),negateConfig=createUnaryKernelConfig(Negate);function parseResultStruct(backend3,resOffset){const result=new Int32Array(backend3.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend3.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}let wasmFunc3;function setup22(backend3){wasmFunc3=backend3.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc3(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pSelectedScores),backend3.wasm._free(pValidOutputs);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices);return selectedIndicesTensor}const nonMaxSuppressionV3Config2={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup22,kernelFunc};let wasmFunc4;function setup23(backend3){wasmFunc4=backend3.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV4(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pSelectedScores);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend3.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}const nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup23,kernelFunc:nonMaxSuppressionV4};let wasmFunc5;function setup24(backend3){wasmFunc5=backend3.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pValidOutputs);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend3.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}const nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup24,kernelFunc:kernelFunc2},supportsFullBroadcast13=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast13,"bool");let wasmOneHot;function setup25(backend3){wasmOneHot=backend3.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot2(args){const{inputs,backend:backend3,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend3.makeOutput([...indices.shape,depth],"int32"),outId=backend3.dataIdMap.get(out.dataId).id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}const oneHotConfig={kernelName:OneHot,backendName:"wasm",setupFunc:setup25,kernelFunc:oneHot2};function onesLike2(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(1),out}const onesLikeConfig={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike2};let wasmPadV2;function setup26(backend3){wasmPadV2=backend3.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad10(args){const{inputs:{x},backend:backend3,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(outShape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}const padV2Config2={kernelName:PadV2,backendName:"wasm",kernelFunc:pad10,setupFunc:setup26},supportsFullBroadcast14=!1,powConfig=createBinaryKernelConfig(Pow,supportsFullBroadcast14);let wasmPrelu;function setup27(backend3){wasmPrelu=backend3.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu8(args){const{inputs,backend:backend3}=args,{x,alpha}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,weightsId=backend3.dataIdMap.get(alpha.dataId).id,out=backend3.makeOutput(x.shape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}const preluConfig2={kernelName:Prelu,backendName:"wasm",setupFunc:setup27,kernelFunc:prelu8},reluConfig2=createUnaryKernelConfig(Relu),relu6Config2=createUnaryKernelConfig(Relu6);let wasmResizeBilinear;function setup28(backend3){wasmResizeBilinear=backend3.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number"])}function resizeBilinear2(args){const{backend:backend3,inputs,attrs}=args,{images}=inputs,{alignCorners,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels];let xData=backend3.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast51({backend:backend3,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend3.dataIdMap.get(castedData.dataId));const xId=xData.id,out=backend3.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;const outId=backend3.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,outId),castedData!=null&&backend3.disposeData(castedData.dataId),out}const resizeBilinearConfig={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup28,kernelFunc:resizeBilinear2};let wasmReverse;function setup29(backend3){wasmReverse=backend3.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse11(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity4({inputs:{x},backend:backend3});const out=backend3.makeOutput(x.shape,x.dtype),xId=backend3.dataIdMap.get(x.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape91({inputs:{x:out},attrs:{shape:x.shape},backend:backend3})}const reverseConfig={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse11,setupFunc:setup29};let wasmRotate;function setup30(backend3){wasmRotate=backend3.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){const{inputs,backend:backend3,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend3.makeOutput(image3.shape,image3.dtype),imageId=backend3.dataIdMap.get(image3.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}const rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup30},rsqrtConfig2=createUnaryKernelConfig(Rsqrt);let wasmScatterNd;function setup31(backend3){wasmScatterNd=backend3.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd(args){const{backend:backend3,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend3.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;const{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,updatesData=backend3.dataIdMap.get(updates.dataId),updatesId=updatesData.id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}const scatterNdConfig={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup31,kernelFunc:scatterNd};let wasmSelect;function setup32(backend3){wasmSelect=backend3.wasm.cwrap(SelectV2,null,["number","number","number","number","number"])}function select(args){const{inputs,backend:backend3}=args,{condition,t,e}=inputs,conditionId=backend3.dataIdMap.get(condition.dataId).id,tId=backend3.dataIdMap.get(t.dataId).id,eId=backend3.dataIdMap.get(e.dataId).id,out=backend3.makeOutput(t.shape,t.dtype),outId=backend3.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}const selectV2Config={kernelName:SelectV2,backendName:"wasm",kernelFunc:select,setupFunc:setup32};let wasmFunc6;function setup33(backend3){wasmFunc6=backend3.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid8(args){const{backend:backend3,inputs:{x}}=args,xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(x.shape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc6(xId,outId),out}const sigmoidConfig2={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup33,kernelFunc:sigmoid8},sinConfig3=createUnaryKernelConfig(Sin);function slice20(args){const{inputs:{x},attrs:{begin,size},backend:backend3}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend3.typedArrayFromHeap(x),out=backend3.makeOutput(size_,x.dtype),outVals=backend3.typedArrayFromHeap(out),xStrides=util_exports.computeStrides(x.shape);if(isContinous){const flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return outVals.set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}const rank=x.shape.length;return rank===2?slice2d3(xVals,xStrides[0],outVals,begin_,size_):rank===3?slice3d3(xVals,xStrides[0],xStrides[1],outVals,begin_,size_):rank===4?slice4d3(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_):genericSliceSlow(xVals,x,outVals,begin_,size_),out}function slice2d3(xVals,xStride,outVals,begin,size){let outOffset=0;const beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;iidx+begin[j]);outVals[i]=xBuf.get(...xLoc)}}const sliceConfig2={kernelName:Slice,backendName:"wasm",kernelFunc:slice20};let wasmFunc7;function setup34(backend3){wasmFunc7=backend3.wasm.cwrap(Softmax,null,["number","number","number","number"])}function softmax5(args){const{backend:backend3,inputs:{logits},attrs:{dim}}=args,xId=backend3.dataIdMap.get(logits.dataId).id,out=backend3.makeOutput(logits.shape,logits.dtype),outId=backend3.dataIdMap.get(out.dataId).id,channels=logits.shape[dim],batch=util_exports.sizeFromShape(logits.shape)/channels;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId,channels,batch),out}const softmaxConfig={kernelName:Softmax,backendName:"wasm",setupFunc:setup34,kernelFunc:softmax5};function split12(args){const{inputs,attrs,backend:backend3}=args,{x}=inputs,{numOrSizeSplits,axis}=attrs,$axis=util_exports.parseAxisParam(axis,x.shape)[0],splitSizes=backend_util_exports.prepareSplitSize(x,numOrSizeSplits,axis),begin=new Array(x.shape.length).fill(0),size=x.shape.slice();return splitSizes.map(s=>{const xSliceSize=[...size];xSliceSize[$axis]=s;const xSlice=slice20({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend3});return begin[$axis]+=s,xSlice})}const splitVConfig={kernelName:SplitV,backendName:"wasm",kernelFunc:split12},sqrtConfig2=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15);let wasmStridedSlice;function setup35(backend3){wasmStridedSlice=backend3.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice2(args){const{backend:backend3,inputs,attrs}=args,{x}=inputs;let{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));const{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});const xReshaped=reshape91({inputs:{x},attrs:{shape:newShape},backend:backend3}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;const shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});const size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1),nonStrided=strides.every(v=>v===1);if(nonStrided){const xSliced=slice20({inputs:{x},attrs:{begin,size},backend:backend3});return reshape91({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend3})}const out=backend3.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){const xId=backend3.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend3.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape91({inputs:{x:out},attrs:{shape:outShape},backend:backend3})}const stridedSliceConfig={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup35,kernelFunc:stridedSlice2},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16);let wasmSum;function setup36(backend3){wasmSum=backend3.wasm.cwrap(Sum,null,["number, number, number"])}function sum28(args){const{backend:backend3,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);let reductionAxes=axes;if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const sumConfig={kernelName:Sum,backendName:"wasm",setupFunc:setup36,kernelFunc:sum28},tanhConfig2=createUnaryKernelConfig(Tanh);let wasmTile;function setup37(backend3){wasmTile=backend3.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile11(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i({dataId,dtype,shape:outShape}))}const unpackConfig={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack};function zerosLike2(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(0),out}const zerosLikeConfig={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike2},kernelConfigs3=[absConfig2,addConfig3,addNConfig,argMaxConfig,avgPoolConfig3,batchMatMulConfig2,castConfig3,clipByValueConfig,concatConfig3,conv2DConfig2,conv2DBackpropInputConfig2,cosConfig3,cropAndResizeConfig,cumsumConfig,depthToSpaceConfig,depthwiseConv2dNativeConfig2,divConfig3,equalConfig,expConfig2,fillConfig2,flipLeftRightConfig3,floorDivConfig,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig,gatherV2Config,greaterConfig,greaterEqualConfig,identityConfig3,lessConfig,lessEqualConfig,logConfig2,logicalAndConfig,maxConfig3,maximumConfig,maxPoolConfig3,minConfig,minimumConfig,multiplyConfig3,negateConfig,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig,onesLikeConfig,padV2Config2,powConfig,preluConfig2,reluConfig2,relu6Config2,reshapeConfig3,resizeBilinearConfig,reverseConfig,rotateWithOffsetConfig3,rsqrtConfig2,scatterNdConfig,selectV2Config,sigmoidConfig2,sinConfig3,sliceConfig2,softmaxConfig,splitVConfig,sqrtConfig2,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig,subConfig3,sumConfig,tanhConfig2,tileConfig,transposeConfig3,unpackConfig,zerosLikeConfig];for(const kernelConfig of kernelConfigs3)registerKernel(kernelConfig);const ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return 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(e){return!1}});const tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),WASM_PRIORITY=2;class BackendWasm extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine15())}write(values,shape,dtype){const dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){const start=util_exports.now();f();const kernelMs=util_exports.now()-start;return{kernelMs}}move(dataId,values,shape,dtype){const id=this.dataIdNextNumber++;if(dtype==="string"){const stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}const size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){const{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;const bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){const data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};const id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});const size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){const buffer11=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer11,memoryOffset,size);case"int32":return new Int32Array(buffer11,memoryOffset,size);case"bool":return new Uint8Array(buffer11,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}}registerBackend("wasm",async()=>{const{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){const[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{const factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){const response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var _scriptDir = undefined; var WasmBackendModuleThreadedSimd = "+tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=tfjs_backend_wasm.default(factoryConfig);const voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{if(initialized)return;if(initAborted)return;initAborted=!0;const rejectMsg="Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers";reject({message:rejectMsg})}})}function typedArrayFromBuffer(buffer11,dtype){switch(dtype){case"float32":return new Float32Array(buffer11);case"int32":return new Int32Array(buffer11);case"bool":return new Uint8Array(buffer11);default:throw new Error(`Unknown dtype ${dtype}`)}}const wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"];let wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;const missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}const version17="2.7.0";const facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){const h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){const startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>{const scaledCoord=[coord[0]*factor[0],coord[1]*factor[1]];return scaledCoord});return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){const center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){const centers=getBoxCenter(box),size=getBoxSize(box),maxEdge=Math.max(...size),halfSize=maxEdge/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function shiftBox(box,shiftFactor){const boxSize=[box.endPoint[0]-box.startPoint[0],box.endPoint[1]-box.startPoint[1]],shiftVector=[boxSize[0]*shiftFactor[0],boxSize[1]*shiftFactor[1]],startPoint=[box.startPoint[0]+shiftVector[0],box.startPoint[1]+shiftVector[1]],endPoint=[box.endPoint[0]+shiftVector[0],box.endPoint[1]+shiftVector[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){const radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}const buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot2(v1,v2){let product=0;for(let i=0;itypeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){const isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{const pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}class Human{constructor(userConfig={}){this.tf=tfjs_esm_exports,this.version=version3,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}log(...msg){msg&&this.config.console&&console.log("Human:",...msg)}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;const current=engine15().state.numTensors,previous=this.numTensors;this.numTensors=current;const leaked=current-previous;leaked!==0&&this.log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig){this.state="load";const timeStamp=now2();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(this.log(`version: ${this.version} TensorFlow/JS version: ${version}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(this.log("configuration:",this.config),this.log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)));const current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){const timeStamp=now2();if(this.state="backend",this.log("setting backend:",this.config.backend),this.config.backend==="wasm"){this.log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath);const simd=await env().getAsync("WASM_HAS_SIMD_SUPPORT");simd||this.log("warning: wasm simd support is not enabled")}if(await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(this.log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);const gl=await backend2().getGPGPUContext().gl;this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){let timeStamp,ageRes,genderRes,emotionRes,embeddingRes;const faceRes=[];this.state="run:face",timeStamp=now2();const faces=await this.models.facemesh.estimateFaces(input2,this.config);this.perf.face=Math.trunc(now2()-timeStamp);for(const face2 of faces){if(this.analyze("Get Face"),!face2.image||face2.image.isDisposedInternal){this.log("Face object is disposed:",face2.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face2.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face2.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face2.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face2.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face2.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face2.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face2.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face2.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face2.image.dispose();const irisSize=face2.annotations.leftEyeIris&&face2.annotations.rightEyeIris?11.7*Math.max(Math.abs(face2.annotations.leftEyeIris[3][0]-face2.annotations.leftEyeIris[1][0]),Math.abs(face2.annotations.rightEyeIris[4][1]-face2.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face2.confidence,box:face2.box,mesh:face2.mesh,annotations:face2.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);const process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig={}){return new Promise(async resolve=>{this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";const error=this.sanity(input2);error&&(this.log(error,input2),resolve({error}));let poseRes,handRes,faceRes;const timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine15().startScope(),this.analyze("Start Scope:"),timeStamp=now2();const process3=image2.process(input2,this.config);if(!process3||!process3.tensor){this.log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?this.models.posenet.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await this.models.posenet.estimatePoses(process3.tensor,this.config):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?this.models.handpose.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await this.models.handpose.estimateHands(process3.tensor,this.config):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.config.async&&([faceRes,poseRes,handRes]=await Promise.all([faceRes,poseRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine15().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes={face:gesture.face(faceRes),body:gesture.body(poseRes),hand:gesture.hand(handRes)},this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig,sample){sample||(sample=new ImageData(255,255));const warmup=await this.detect(sample,userConfig);return this.log("warmed up"),warmup}}export{Human as default};
+`,sin6=unaryKernelFunc2(SIN),sinConfig2={kernelName:Sin,backendName:"webgl",kernelFunc:sin6},SQUARE="return x * x;",square25=unaryKernelFunc2(SQUARE),squareConfig2={kernelName:Square,backendName:"webgl",kernelFunc:square25},SQUARED_DIFFERENCE="return (a - b) * (a - b);",squaredDifference3=binaryKernelFunc2({opSnippet:SQUARED_DIFFERENCE,packedOpSnippet:SQUARED_DIFFERENCE}),squaredDifferenceConfig2={kernelName:SquaredDifference,backendName:"webgl",kernelFunc:squaredDifference3},SUB="return a - b;",subKernelFunc=binaryKernelFunc2({opSnippet:SUB,packedOpSnippet:SUB,supportsComplex:!0,cpuKernelImpl:subImplCPU}),subConfig2={kernelName:Sub,backendName:"webgl",kernelFunc:subKernelFunc},TAN="return tan(x);",tan5=unaryKernelFunc2(TAN),tanConfig2={kernelName:Tan,backendName:"webgl",kernelFunc:tan5},transposeConfig2={kernelName:Transpose,backendName:"webgl",kernelFunc:({inputs,attrs,backend:backend3})=>{const{x}=inputs,{perm}=attrs,webglBackend=backend3,xRank=x.shape.length,newShape=new Array(xRank);for(let i=0;iwasmFunc8(aId,aShapeBytes,a.shape.length,bId,bShapeBytes,b.shape.length,CppDType[a.dtype],outId);if(supportsFullBroadcast17&&a.dtype==="float32")return kernelFunc4(),out;const aBroadcastDims=backend_util_exports.getBroadcastDims(a.shape,newShape),bBroadcastDims=backend_util_exports.getBroadcastDims(b.shape,newShape),loopsOverAllOfA=aBroadcastDims.every((v,i)=>v===i),loopsOverAllOfB=bBroadcastDims.every((v,i)=>v===i);if(loopsOverAllOfA&&loopsOverAllOfB)return kernelFunc4(),out;throw new Error(`Broadcasting along outer dims is not yet supported for ${a.dtype} ${kernelName}.`)}return{kernelName,backendName:"wasm",setupFunc:setupFunc2,kernelFunc:kernelFunc3}}const supportsFullBroadcast=!0,addConfig3=createBinaryKernelConfig(Add,supportsFullBroadcast);let wasmFunc;function setupFunc(backend3){wasmFunc=backend3.wasm.cwrap(AddN,null,["array","number","number","number"])}function addn(args){const{inputs,backend:backend3}=args,out=backend3.makeOutput(inputs[0].shape,inputs[0].dtype);if(util_exports.sizeFromShape(out.shape)===0)return out;const inputIds=inputs.map(x=>backend3.dataIdMap.get(x.dataId).id),inputIdsBytes=new Uint8Array(new Int32Array(inputIds).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmFunc(inputIdsBytes,inputIds.length,CppDType[out.dtype],outId),out}const addNConfig={kernelName:AddN,backendName:"wasm",setupFunc,kernelFunc:addn};function identity4(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),inVals=backend3.typedArrayFromHeap(x),outVals=backend3.typedArrayFromHeap(out);return outVals.set(inVals),out}const identityConfig3={kernelName:Identity,backendName:"wasm",kernelFunc:identity4};let wasmTranspose;function setup2(backend3){wasmTranspose=backend3.wasm.cwrap(Transpose,null,["number","array","number","number","number","array","number"])}function transpose19(args){const{inputs,backend:backend3,attrs}=args,[reducedShape,perm]=removeOneSizeDims(inputs.x.shape,attrs.perm);let permIsNoOp=!0;for(let i=0;i=i&&(minValIdx===-1||newPerm[minValIdx]>newPerm[j])&&(minValIdx=j);newPerm[minValIdx]=i}return[newShape,newPerm]}const transposeConfig3={kernelName:Transpose,backendName:"wasm",kernelFunc:transpose19,setupFunc:setup2};function permuteAxesAndTranspose(x,axis,backend3){const xShape=x.shape,xRank=x.shape.length,originalAxes=util_exports.parseAxisParam(axis,xShape);let axes=originalAxes;const permutedAxes=backend_util_exports.getAxesPermutation(axes,xRank);let xTransposed=null,inputWasTransposed=!1;if(permutedAxes!=null){const newShape=new Array(xRank);for(let i=0;i`new shape: ${$shape}, old shape: ${x.shape}. New shape and old shape must have the same number of elements.`),{dataId:x.dataId,shape:$shape,dtype:x.dtype}}const reshapeConfig3={kernelName:Reshape,backendName:"wasm",kernelFunc:reshape91};let wasmBatchMatMul;function setup5(backend3){wasmBatchMatMul=backend3.wasm.cwrap(BatchMatMul,null,["number","array","number","number","array","number","number","number","number"])}function batchMatMul2(args){const{inputs,backend:backend3,attrs}=args,{a,b}=inputs,{transposeA,transposeB}=attrs;if(a.dtype!=="float32"||b.dtype!=="float32")throw new Error("BatchMatMul for non non-float32 tensors not yet supported.");const aRank=a.shape.length,bRank=b.shape.length,innerShapeA=transposeA?a.shape[aRank-2]:a.shape[aRank-1],innerShapeB=transposeB?b.shape[bRank-1]:b.shape[bRank-2],outerShapeA=transposeA?a.shape[aRank-1]:a.shape[aRank-2],outerShapeB=transposeB?b.shape[bRank-2]:b.shape[bRank-1],outerDimsA=a.shape.slice(0,-2),outerDimsB=b.shape.slice(0,-2),batchDimA=util_exports.sizeFromShape(outerDimsA),batchDimB=util_exports.sizeFromShape(outerDimsB),batchDimsCompatible=batchDimA===batchDimB||batchDimA===1||batchDimB===1;util_exports.assert(aRank>=2&&bRank>=2&&batchDimsCompatible,()=>`Error in matMul: the input batch dimensions must either be the same or at least one input batch dimension must be 1. Got input batch dimensions of (${outerDimsA}) and (${outerDimsB}).`);const outShapeOuterDims=batchDimA>batchDimB?a.shape.slice(0,-2):b.shape.slice(0,-2),outShape=outShapeOuterDims.concat([outerShapeA,outerShapeB]);util_exports.assert(innerShapeA===innerShapeB,()=>`Error in matMul: inner shapes (${innerShapeA}) and (${innerShapeB}) of Tensors with shapes ${a.shape} and ${b.shape} and transposeA=${transposeA} and transposeB=${transposeB} must match.`);const a3dShape=transposeA?[batchDimA,innerShapeA,outerShapeA]:[batchDimA,outerShapeA,innerShapeA],b3dShape=transposeB?[batchDimB,outerShapeB,innerShapeB]:[batchDimB,innerShapeB,outerShapeB],a3d=reshape91({inputs:{x:a},backend:backend3,attrs:{shape:a3dShape}}),b3d=reshape91({inputs:{x:b},backend:backend3,attrs:{shape:b3dShape}}),a3dId=backend3.dataIdMap.get(a3d.dataId).id,b3dId=backend3.dataIdMap.get(b3d.dataId).id,leftDim=transposeA?a3d.shape[2]:a3d.shape[1],rightDim=transposeB?b3d.shape[1]:b3d.shape[2],batchDim=Math.max(batchDimA,batchDimB),out=backend3.makeOutput([batchDim,leftDim,rightDim],a3d.dtype),outId=backend3.dataIdMap.get(out.dataId).id,aShapeBytes=new Uint8Array(new Int32Array(a3d.shape).buffer),bShapeBytes=new Uint8Array(new Int32Array(b3d.shape).buffer);return wasmBatchMatMul(a3dId,aShapeBytes,a3d.shape.length,b3dId,bShapeBytes,b3d.shape.length,transposeA,transposeB,outId),out.shape=outShape,out}const batchMatMulConfig2={kernelName:BatchMatMul,backendName:"wasm",setupFunc:setup5,kernelFunc:batchMatMul2};function cast51(args){const{inputs:{x},attrs:{dtype},backend:backend3}=args,out=backend3.makeOutput(x.shape,dtype),inVals=backend3.typedArrayFromHeap(x),outVals=backend3.typedArrayFromHeap(out);return outVals.set(inVals),out}const castConfig3={kernelName:Cast,backendName:"wasm",kernelFunc:cast51};let wasmClip;function setup6(backend3){wasmClip=backend3.wasm.cwrap(ClipByValue,null,["number","number","number","number"])}function clip2(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,{clipValueMin,clipValueMax}=attrs,xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(x.shape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id;return wasmClip(xId,clipValueMin,clipValueMax,outId),out}const clipByValueConfig={kernelName:ClipByValue,backendName:"wasm",setupFunc:setup6,kernelFunc:clip2};function concat19(args){const{inputs,backend:backend3}=args,axis=util_exports.parseAxisParam(args.attrs.axis,inputs[0].shape)[0],outShape=backend_util_exports.computeOutShape(inputs.map(t=>t.shape),axis),out=backend3.makeOutput(outShape,inputs[0].dtype);if(util_exports.sizeFromShape(outShape)===0)return out;const $inputs=inputs.filter(t=>util_exports.sizeFromShape(t.shape)>0);if($inputs.length===1)return $inputs[0];const shapes=$inputs.map(t=>t.shape);backend_util_exports.assertParamsConsistent(shapes,axis);const batchDim=util_exports.sizeFromShape($inputs[0].shape.slice(0,axis));let sumInnerDims=0;const innerDims=$inputs.map(input2=>{const innerDim=util_exports.sizeFromShape(input2.shape.slice(axis));return sumInnerDims+=innerDim,innerDim}),inVals=$inputs.map(input2=>backend3.typedArrayFromHeap(input2)),outVals=backend3.typedArrayFromHeap(out);for(let b=0;b`cumsum does not support ${x.dtype} tensors in the WASM backend`);const permutation=backend_util_exports.getAxesPermutation([axis],xRank);let permutedX=x;permutation!==null&&(permutedX=transpose19({inputs:{x},attrs:{perm:permutation},backend:backend3}));const permutedAxis=backend_util_exports.getInnerMostAxes(1,xRank)[0];backend_util_exports.assertAxesAreInnerMostDims("cumsum",[permutedAxis],xRank);const permutedOut=backend3.makeOutput(permutedX.shape,permutedX.dtype),finalDim=permutedX.shape[permutedAxis],permutedXId=backend3.dataIdMap.get(permutedX.dataId).id,permutedOutId=backend3.dataIdMap.get(permutedOut.dataId).id;wasmCumsum(permutedXId,exclusive?1:0,reverse12?1:0,finalDim,permutedOutId,CppDType[x.dtype]);let out=permutedOut;if(permutation!==null){const undoPermutation=backend_util_exports.getUndoAxesPermutation(permutation);out=transpose19({inputs:{x:permutedOut},attrs:{perm:undoPermutation},backend:backend3}),backend3.disposeData(permutedX.dataId),backend3.disposeData(permutedOut.dataId)}return out}const cumsumConfig={kernelName:Cumsum,backendName:"wasm",setupFunc:setup10,kernelFunc:cumsum6};let wasmDepthToSpace;function setup11(backend3){wasmDepthToSpace=backend3.wasm.cwrap(DepthToSpace,null,["number","number","number","array","number","array","array","number","number"])}function depthToSpace2(args){const{backend:backend3,inputs,attrs}=args,{x}=inputs,{blockSize,dataFormat}=attrs;util_exports.assert(blockSize>1,()=>`blockSize should be > 1 for depthToSpace, but was: ${blockSize}`);const batchSize=x.shape[0],inputHeight=dataFormat==="NHWC"?x.shape[1]:x.shape[2],inputWidth=dataFormat==="NHWC"?x.shape[2]:x.shape[3],inputDepth=dataFormat==="NHWC"?x.shape[3]:x.shape[1],outputHeight=inputHeight*blockSize,outputWidth=inputWidth*blockSize,outputDepth=inputDepth/(blockSize*blockSize),outputShape=dataFormat==="NHWC"?[batchSize,outputHeight,outputWidth,outputDepth]:[batchSize,outputDepth,outputHeight,outputWidth],out=backend3.makeOutput(outputShape,"float32"),xData=backend3.dataIdMap.get(x.dataId),xId=xData.id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outputShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outputShape)).buffer),outId=backend3.dataIdMap.get(out.dataId).id,channelsLast=dataFormat==="NHWC"?1:0;return wasmDepthToSpace(xId,blockSize,channelsLast,xStridesBytes,x.shape.length-1,outputShapeBytes,outStridesBytes,outputShape.length,outId),out}const depthToSpaceConfig={kernelName:DepthToSpace,backendName:"wasm",setupFunc:setup11,kernelFunc:depthToSpace2};let wasmDepthwiseConv2d;function setup12(backend3){wasmDepthwiseConv2d=backend3.wasm.cwrap(DepthwiseConv2dNative,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function depthwiseConv2d5(args){const{inputs,attrs,backend:backend3}=args,{x,filter}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,{strides,dilations,pad:pad11,dimRoundingMode}=attrs,$dilations=dilations==null?[1,1]:dilations,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,$dilations,pad11,dimRoundingMode,!0),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend DepthwiseConv2dNative does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmDepthwiseConv2d(xId,x.shape[0],x.shape[1],x.shape[2],filterId,filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}const depthwiseConv2dNativeConfig2={kernelName:DepthwiseConv2dNative,backendName:"wasm",setupFunc:setup12,kernelFunc:depthwiseConv2d5},supportsFullBroadcast2=!0,divConfig3=createBinaryKernelConfig(Div,supportsFullBroadcast2),supportsFullBroadcast3=!1,equalConfig=createBinaryKernelConfig(Equal,supportsFullBroadcast3,"bool"),expConfig2=createUnaryKernelConfig(Exp);function fill6(args){const{attrs:{shape,value,dtype},backend:backend3}=args,out=backend3.makeOutput(shape,dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(value),out}const fillConfig2={kernelName:Fill,backendName:"wasm",kernelFunc:fill6};let wasmFlipLeftRight;function setup13(backend3){wasmFlipLeftRight=backend3.wasm.cwrap(FlipLeftRight,null,["number","number","number","number","number","number"])}function flipLeftRight2(args){const{inputs,backend:backend3}=args,{image:image3}=inputs,out=backend3.makeOutput(image3.shape,image3.dtype),imageId=backend3.dataIdMap.get(image3.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape;return wasmFlipLeftRight(imageId,batch,imageHeight,imageWidth,numChannels,outId),out}const flipLeftRightConfig3={kernelName:FlipLeftRight,backendName:"wasm",kernelFunc:flipLeftRight2,setupFunc:setup13},supportsFullBroadcast4=!1,floorDivConfig=createBinaryKernelConfig(FloorDiv,supportsFullBroadcast4);let wasmBatchNorm;function setup14(backend3){wasmBatchNorm=backend3.wasm.cwrap(FusedBatchNorm,null,["number","number","number","number","number","number","number"])}function fusedBatchNorm(args){const{backend:backend3,inputs,attrs}=args,{varianceEpsilon}=attrs,{x,mean:mean7,variance,offset,scale:scale2}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,meanId=backend3.dataIdMap.get(mean7.dataId).id,varianceId=backend3.dataIdMap.get(variance.dataId).id,offsetId=offset!=null?backend3.dataIdMap.get(offset.dataId).id:0,scaleId=scale2!=null?backend3.dataIdMap.get(scale2.dataId).id:0,out=backend3.makeOutput(x.shape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;const outId=backend3.dataIdMap.get(out.dataId).id;return wasmBatchNorm(xId,meanId,varianceId,offsetId,scaleId,varianceEpsilon,outId),out}const fusedBatchNormConfig={kernelName:FusedBatchNorm,backendName:"wasm",setupFunc:setup14,kernelFunc:fusedBatchNorm};let wasmFusedConv2d;function setup15(backend3){wasmFusedConv2d=backend3.wasm.cwrap(FusedConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedConv2d(args){const{inputs,attrs,backend:backend3}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad11,dilations,dataFormat,dimRoundingMode,activation:activation2}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad11,dimRoundingMode),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedConv2D in the wasm backend.`);const xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels;let biasId=0;if(bias!=null){const biasData=backend3.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}const filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend3.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,outId),out}const fusedConv2DConfig2={kernelName:FusedConv2D,backendName:"wasm",setupFunc:setup15,kernelFunc:fusedConv2d};let wasmFusedDepthwiseConv2d;function setup16(backend3){wasmFusedDepthwiseConv2d=backend3.wasm.cwrap(FusedDepthwiseConv2D,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function fusedDepthwiseConv2d(args){const{inputs,attrs,backend:backend3}=args,{x,filter,bias,preluActivationWeights}=inputs,{strides,pad:pad11,dilations,dataFormat,dimRoundingMode,activation:activation2}=attrs,convInfo=backend_util_exports.computeConv2DInfo(x.shape,filter.shape,strides,dilations,pad11,dimRoundingMode,!0),fusedActivation=FusableActivation[activation2];if(fusedActivation==null)throw new Error(`${activation2} activation not yet supported for FusedDepthwiseConv2D in the wasm backend.`);const xId=backend3.dataIdMap.get(x.dataId).id,filterId=backend3.dataIdMap.get(filter.dataId).id,outputChannels=convInfo.outChannels;let biasId=0;if(bias!=null){const biasData=backend3.dataIdMap.get(bias.dataId);if(biasData.shape.length!==1)throw new Error(`FusedDepthwiseConv2D only supports rank-1 bias but got rank ${biasData.shape.length}.`);if(biasData.shape[0]!==outputChannels)throw new Error(`FusedDepthwiseConv2D bias shape (${biasData.shape}) does not match the number of output channels (${outputChannels})`);biasId=biasData.id}const filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,isSamePad=convInfo.padInfo.type==="SAME"?1:0,batchSize=convInfo.batchSize,inHeight=convInfo.inHeight,inWidth=convInfo.inWidth;if(dataFormat!=="NHWC")throw new Error(`wasm backend FusedDepthwiseConv2D does not support dataFormat:'${dataFormat}'. Please use 'NHWC'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id,preluActivationWeightsId=preluActivationWeights==null?0:backend3.dataIdMap.get(preluActivationWeights.dataId).id;return wasmFusedDepthwiseConv2d(xId,batchSize,inHeight,inWidth,filterId,filterHeight,filterWidth,biasId,padTop,padRight,padBottom,padLeft,isSamePad,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,fusedActivation,preluActivationWeightsId,outId),out}const fusedDepthwiseConv2DConfig2={kernelName:FusedDepthwiseConv2D,backendName:"wasm",setupFunc:setup16,kernelFunc:fusedDepthwiseConv2d};let wasmGatherNd;function setup17(backend3){wasmGatherNd=backend3.wasm.cwrap(GatherNd,null,["number","number","number","number","number","number","array","number"])}function gatherNd(args){const{backend:backend3,inputs}=args,{params,indices}=inputs,[resultShape,numSlices,sliceSize,strides]=gather_nd_util_exports.prepareAndValidate(params,indices),out=backend3.makeOutput(resultShape,params.dtype);if(numSlices===0)return out;const indicesShape=indices.shape,sliceRank=indicesShape[indicesShape.length-1],xData=backend3.dataIdMap.get(params.dataId),xId=xData.id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmGatherNd(xId,CppDType[params.dtype],indicesId,numSlices,sliceRank,sliceSize,stridesBytes,outId),out}const gatherNdConfig={kernelName:GatherNd,backendName:"wasm",setupFunc:setup17,kernelFunc:gatherNd};let wasmGather;function setup18(backend3){wasmGather=backend3.wasm.cwrap("Gather",null,["number","number","array","number","number","number","array","number"])}function gatherV2(args){const{backend:backend3,inputs,attrs}=args,{x,indices}=inputs,{axis}=attrs,newShape=x.shape.slice();newShape[axis]=util_exports.sizeFromShape(indices.shape);const stridesSize=x.shape.length-1,out=backend3.makeOutput(newShape,x.dtype);if(util_exports.sizeFromShape(x.shape)===0)return out;const xData=backend3.dataIdMap.get(x.dataId),xId=xData.id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,outId=backend3.dataIdMap.get(out.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(x.shape)).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(newShape)).buffer);wasmGather(xId,CppDType[x.dtype],xStridesBytes,stridesSize,indicesId,axis,outStridesBytes,outId);const parsedAxis=util_exports.parseAxisParam(axis,x.shape)[0],shapeInfo=backend_util_exports.segment_util.collectGatherOpShapeInfo(x,indices,parsedAxis);return out.shape=shapeInfo.outputShape,out}const gatherV2Config={kernelName:GatherV2,backendName:"wasm",setupFunc:setup18,kernelFunc:gatherV2},supportsFullBroadcast5=!1,greaterConfig=createBinaryKernelConfig(Greater,supportsFullBroadcast5,"bool"),supportsFullBroadcast6=!1,greaterEqualConfig=createBinaryKernelConfig(GreaterEqual,supportsFullBroadcast6,"bool"),supportsFullBroadcast7=!1,lessConfig=createBinaryKernelConfig(Less,supportsFullBroadcast7,"bool"),supportsFullBroadcast8=!1,lessEqualConfig=createBinaryKernelConfig(LessEqual,supportsFullBroadcast8,"bool"),logConfig2=createUnaryKernelConfig(Log),supportsFullBroadcast9=!1,logicalAndConfig=createBinaryKernelConfig(LogicalAnd,supportsFullBroadcast9,"bool");let wasmMax;function setup19(backend3){wasmMax=backend3.wasm.cwrap(Max,null,["number, number, number"])}function max9(args){const{backend:backend3,inputs,attrs}=args,{reductionIndices:axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;input2=transposed,inputId=transposedId}const inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("max",axes,inputRank);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,x.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmMax(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const maxConfig3={kernelName:Max,backendName:"wasm",setupFunc:setup19,kernelFunc:max9},supportsFullBroadcast10=!1,maximumConfig=createBinaryKernelConfig(Maximum,supportsFullBroadcast10);let wasmMaxPool;function setup20(backend3){wasmMaxPool=backend3.wasm.cwrap(MaxPool,null,["number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number","number"])}function maxPool4(args){const{inputs,attrs,backend:backend3}=args,x=inputs.x,xId=backend3.dataIdMap.get(x.dataId).id,{filterSize,strides,pad:pad11,dimRoundingMode}=attrs,convInfo=backend_util_exports.computePool2DInfo(x.shape,filterSize,strides,1,pad11,dimRoundingMode),filterHeight=convInfo.filterHeight,filterWidth=convInfo.filterWidth,padTop=convInfo.padInfo.top,padRight=convInfo.padInfo.right,padBottom=convInfo.padInfo.bottom,padLeft=convInfo.padInfo.left,dilationHeight=convInfo.dilationHeight,dilationWidth=convInfo.dilationWidth,strideHeight=convInfo.strideHeight,strideWidth=convInfo.strideWidth,inputChannels=convInfo.inChannels,outputChannels=convInfo.outChannels;if(convInfo.dataFormat!=="channelsLast")throw new Error(`wasm backend does not support dataFormat:'${convInfo.dataFormat}'. Please use 'channelsLast'.`);const out=backend3.makeOutput(convInfo.outShape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmMaxPool(xId,x.shape[0],x.shape[1],x.shape[2],filterHeight,filterWidth,padTop,padRight,padBottom,padLeft,dilationHeight,dilationWidth,strideHeight,strideWidth,inputChannels,outputChannels,outId),out}const maxPoolConfig3={kernelName:MaxPool,backendName:"wasm",setupFunc:setup20,kernelFunc:maxPool4};let wasmMin;function setup21(backend3){wasmMin=backend3.wasm.cwrap(Min,null,["number, number, number"])}function min7(args){const{backend:backend3,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId)}const inputRank=input2.shape.length;backend_util_exports.assertAxesAreInnerMostDims("min",axes,inputRank);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,axes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmMin(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const minConfig={kernelName:Min,backendName:"wasm",setupFunc:setup21,kernelFunc:min7},supportsFullBroadcast11=!1,minimumConfig=createBinaryKernelConfig(Minimum,supportsFullBroadcast11),supportsFullBroadcast12=!0,multiplyConfig3=createBinaryKernelConfig(Multiply,supportsFullBroadcast12),negateConfig=createUnaryKernelConfig(Negate);function parseResultStruct(backend3,resOffset){const result=new Int32Array(backend3.wasm.HEAPU8.buffer,resOffset,4),pSelectedIndices=result[0],selectedSize=result[1],pSelectedScores=result[2],pValidOutputs=result[3];return backend3.wasm._free(resOffset),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}}let wasmFunc3;function setup22(backend3){wasmFunc3=backend3.wasm.cwrap(NonMaxSuppressionV3,"number",["number","number","number","number","number"])}function kernelFunc(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc3(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pSelectedScores),backend3.wasm._free(pValidOutputs);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices);return selectedIndicesTensor}const nonMaxSuppressionV3Config2={kernelName:NonMaxSuppressionV3,backendName:"wasm",setupFunc:setup22,kernelFunc};let wasmFunc4;function setup23(backend3){wasmFunc4=backend3.wasm.cwrap(NonMaxSuppressionV4,"number",["number","number","number","number","number","bool"])}function nonMaxSuppressionV4(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,padToMaxOutputSize}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc4(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,padToMaxOutputSize),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pSelectedScores);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices),validOutputsTensor=backend3.makeOutput([],"int32",pValidOutputs);return[selectedIndicesTensor,validOutputsTensor]}const nonMaxSuppressionV4Config3={kernelName:NonMaxSuppressionV4,backendName:"wasm",setupFunc:setup23,kernelFunc:nonMaxSuppressionV4};let wasmFunc5;function setup24(backend3){wasmFunc5=backend3.wasm.cwrap(NonMaxSuppressionV5,"number",["number","number","number","number","number","number"])}function kernelFunc2(args){const{backend:backend3,inputs,attrs}=args,{iouThreshold,maxOutputSize,scoreThreshold,softNmsSigma}=attrs,{boxes,scores}=inputs,boxesId=backend3.dataIdMap.get(boxes.dataId).id,scoresId=backend3.dataIdMap.get(scores.dataId).id,resOffset=wasmFunc5(boxesId,scoresId,maxOutputSize,iouThreshold,scoreThreshold,softNmsSigma),{pSelectedIndices,selectedSize,pSelectedScores,pValidOutputs}=parseResultStruct(backend3,resOffset);backend3.wasm._free(pValidOutputs);const selectedIndicesTensor=backend3.makeOutput([selectedSize],"int32",pSelectedIndices),selectedScoresTensor=backend3.makeOutput([selectedSize],"float32",pSelectedScores);return[selectedIndicesTensor,selectedScoresTensor]}const nonMaxSuppressionV5Config3={kernelName:NonMaxSuppressionV5,backendName:"wasm",setupFunc:setup24,kernelFunc:kernelFunc2},supportsFullBroadcast13=!1,notEqualConfig3=createBinaryKernelConfig(NotEqual,supportsFullBroadcast13,"bool");let wasmOneHot;function setup25(backend3){wasmOneHot=backend3.wasm.cwrap(OneHot,null,["number","number","number","number","number"])}function oneHot2(args){const{inputs,backend:backend3,attrs}=args,{indices}=inputs,{depth,onValue,offValue}=attrs,out=backend3.makeOutput([...indices.shape,depth],"int32"),outId=backend3.dataIdMap.get(out.dataId).id,indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id;return wasmOneHot(indicesId,depth,onValue,offValue,outId),out}const oneHotConfig={kernelName:OneHot,backendName:"wasm",setupFunc:setup25,kernelFunc:oneHot2};function onesLike2(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(1),out}const onesLikeConfig={kernelName:OnesLike,backendName:"wasm",kernelFunc:onesLike2};let wasmPadV2;function setup26(backend3){wasmPadV2=backend3.wasm.cwrap(PadV2,null,["number","array","number","number","array","array","number","number"])}function pad10(args){const{inputs:{x},backend:backend3,attrs:{paddings,constantValue}}=args,outShape=paddings.map((p2,i)=>p2[0]+x.shape[i]+p2[1]),xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(outShape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id,xShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer),prePaddingsFlat=paddings.map(padTuple=>padTuple[0]),postPaddingsFlat=paddings.map(padTuple=>padTuple[1]),prePaddingsBytes=new Uint8Array(new Int32Array(prePaddingsFlat).buffer),postPaddingsBytes=new Uint8Array(new Int32Array(postPaddingsFlat).buffer);return wasmPadV2(xId,xShapeBytes,x.shape.length,CppDType[x.dtype],prePaddingsBytes,postPaddingsBytes,constantValue,outId),out}const padV2Config2={kernelName:PadV2,backendName:"wasm",kernelFunc:pad10,setupFunc:setup26},supportsFullBroadcast14=!1,powConfig=createBinaryKernelConfig(Pow,supportsFullBroadcast14);let wasmPrelu;function setup27(backend3){wasmPrelu=backend3.wasm.cwrap(Prelu,null,["number","number","number"])}function prelu8(args){const{inputs,backend:backend3}=args,{x,alpha}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,weightsId=backend3.dataIdMap.get(alpha.dataId).id,out=backend3.makeOutput(x.shape,"float32"),outId=backend3.dataIdMap.get(out.dataId).id;return wasmPrelu(xId,weightsId,outId),out}const preluConfig2={kernelName:Prelu,backendName:"wasm",setupFunc:setup27,kernelFunc:prelu8},reluConfig2=createUnaryKernelConfig(Relu),relu6Config2=createUnaryKernelConfig(Relu6);let wasmResizeBilinear;function setup28(backend3){wasmResizeBilinear=backend3.wasm.cwrap(ResizeBilinear,null,["number","number","number","number","number","number","number","number","number"])}function resizeBilinear2(args){const{backend:backend3,inputs,attrs}=args,{images}=inputs,{alignCorners,size}=attrs,[newHeight,newWidth]=size,[batch,oldHeight,oldWidth,numChannels]=images.shape,outShape=[batch,newHeight,newWidth,numChannels];let xData=backend3.dataIdMap.get(images.dataId),castedData;xData.dtype!=="float32"&&(castedData=cast51({backend:backend3,inputs:{x:images},attrs:{dtype:"float32"}}),xData=backend3.dataIdMap.get(castedData.dataId));const xId=xData.id,out=backend3.makeOutput(outShape,"float32");if(util_exports.sizeFromShape(images.shape)===0)return out;const outId=backend3.dataIdMap.get(out.dataId).id;return wasmResizeBilinear(xId,batch,oldHeight,oldWidth,numChannels,newHeight,newWidth,alignCorners?1:0,outId),castedData!=null&&backend3.disposeData(castedData.dataId),out}const resizeBilinearConfig={kernelName:ResizeBilinear,backendName:"wasm",setupFunc:setup28,kernelFunc:resizeBilinear2};let wasmReverse;function setup29(backend3){wasmReverse=backend3.wasm.cwrap(Reverse,null,["number","array","number","array","number","number"])}function reverse11(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,{dims}=attrs,axes=util_exports.parseAxisParam(dims,x.shape);if(x.shape.length===0)return identity4({inputs:{x},backend:backend3});const out=backend3.makeOutput(x.shape,x.dtype),xId=backend3.dataIdMap.get(x.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,axesBytes=new Uint8Array(new Int32Array(axes).buffer),outShapeBytes=new Uint8Array(new Int32Array(x.shape).buffer);return wasmReverse(xId,axesBytes,axes.length,outShapeBytes,x.shape.length,outId),reshape91({inputs:{x:out},attrs:{shape:x.shape},backend:backend3})}const reverseConfig={kernelName:Reverse,backendName:"wasm",kernelFunc:reverse11,setupFunc:setup29};let wasmRotate;function setup30(backend3){wasmRotate=backend3.wasm.cwrap(RotateWithOffset,null,["number","number","number","number","number","number","number","number","array","number","number"])}function rotateWithOffset2(args){const{inputs,backend:backend3,attrs}=args,{image:image3}=inputs,{radians,fillValue,center}=attrs,out=backend3.makeOutput(image3.shape,image3.dtype),imageId=backend3.dataIdMap.get(image3.dataId).id,outId=backend3.dataIdMap.get(out.dataId).id,[batch,imageHeight,imageWidth,numChannels]=image3.shape,[centerX,centerY]=backend_util_exports.getImageCenter(center,imageHeight,imageWidth),fillIsBlack=fillValue===0,fullOpacityValue=255,fillValues2=typeof fillValue=="number"?[fillValue,fillValue,fillValue,fillIsBlack?0:fullOpacityValue]:[...fillValue,fullOpacityValue],fillBytes=new Uint8Array(new Int32Array(fillValues2).buffer);return wasmRotate(imageId,batch,imageHeight,imageWidth,numChannels,radians,centerX,centerY,fillBytes,fillValues2.length,outId),out}const rotateWithOffsetConfig3={kernelName:RotateWithOffset,backendName:"wasm",kernelFunc:rotateWithOffset2,setupFunc:setup30},rsqrtConfig2=createUnaryKernelConfig(Rsqrt);let wasmScatterNd;function setup31(backend3){wasmScatterNd=backend3.wasm.cwrap(ScatterNd,null,["number","number","number","number","number","number","array","number","number"])}function scatterNd(args){const{backend:backend3,inputs,attrs}=args,{indices,updates}=inputs,{shape}=attrs,out=backend3.makeOutput(shape,updates.dtype);if(util_exports.sizeFromShape(shape)===0)return out;const{sliceRank,numUpdates,sliceSize,strides,outputSize}=scatter_nd_util_exports.calculateShapes(updates,indices,shape),indicesData=backend3.dataIdMap.get(indices.dataId),indicesId=indicesData.id,updatesData=backend3.dataIdMap.get(updates.dataId),updatesId=updatesData.id,stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outId=backend3.dataIdMap.get(out.dataId).id;return wasmScatterNd(indicesId,updatesId,CppDType[updates.dtype],sliceRank,numUpdates,sliceSize,stridesBytes,outputSize,outId),out}const scatterNdConfig={kernelName:ScatterNd,backendName:"wasm",setupFunc:setup31,kernelFunc:scatterNd};let wasmSelect;function setup32(backend3){wasmSelect=backend3.wasm.cwrap(SelectV2,null,["number","number","number","number","number"])}function select(args){const{inputs,backend:backend3}=args,{condition,t,e}=inputs,conditionId=backend3.dataIdMap.get(condition.dataId).id,tId=backend3.dataIdMap.get(t.dataId).id,eId=backend3.dataIdMap.get(e.dataId).id,out=backend3.makeOutput(t.shape,t.dtype),outId=backend3.dataIdMap.get(out.dataId).id,cRank=condition.shape.length,tRank=t.shape.length,offset=cRank===0||cRank>1||tRank===1?1:util_exports.sizeFromShape(t.shape.slice(1));return wasmSelect(conditionId,tId,eId,offset,outId),out}const selectV2Config={kernelName:SelectV2,backendName:"wasm",kernelFunc:select,setupFunc:setup32};let wasmFunc6;function setup33(backend3){wasmFunc6=backend3.wasm.cwrap(Sigmoid,null,["number","number"])}function sigmoid8(args){const{backend:backend3,inputs:{x}}=args,xId=backend3.dataIdMap.get(x.dataId).id,out=backend3.makeOutput(x.shape,x.dtype),outId=backend3.dataIdMap.get(out.dataId).id;return util_exports.sizeFromShape(out.shape)===0||wasmFunc6(xId,outId),out}const sigmoidConfig2={kernelName:"Sigmoid",backendName:"wasm",setupFunc:setup33,kernelFunc:sigmoid8},sinConfig3=createUnaryKernelConfig(Sin);function slice20(args){const{inputs:{x},attrs:{begin,size},backend:backend3}=args,[begin_,size_]=slice_util_exports.parseSliceParams(x,begin,size),isContinous=slice_util_exports.isSliceContinous(x.shape,begin_,size_),xVals=backend3.typedArrayFromHeap(x),out=backend3.makeOutput(size_,x.dtype),outVals=backend3.typedArrayFromHeap(out),xStrides=util_exports.computeStrides(x.shape);if(isContinous){const flatOffset=slice_util_exports.computeFlatOffset(begin_,xStrides);return outVals.set(xVals.subarray(flatOffset,flatOffset+util_exports.sizeFromShape(size_))),out}const rank=x.shape.length;return rank===2?slice2d3(xVals,xStrides[0],outVals,begin_,size_):rank===3?slice3d3(xVals,xStrides[0],xStrides[1],outVals,begin_,size_):rank===4?slice4d3(xVals,xStrides[0],xStrides[1],xStrides[2],outVals,begin_,size_):genericSliceSlow(xVals,x,outVals,begin_,size_),out}function slice2d3(xVals,xStride,outVals,begin,size){let outOffset=0;const beginI=begin[0],beginJ=begin[1],endI=beginI+size[0];for(let i=beginI;iidx+begin[j]);outVals[i]=xBuf.get(...xLoc)}}const sliceConfig2={kernelName:Slice,backendName:"wasm",kernelFunc:slice20};let wasmFunc7;function setup34(backend3){wasmFunc7=backend3.wasm.cwrap(Softmax,null,["number","number","number","number"])}function softmax5(args){const{backend:backend3,inputs:{logits},attrs:{dim}}=args,xId=backend3.dataIdMap.get(logits.dataId).id,out=backend3.makeOutput(logits.shape,logits.dtype),outId=backend3.dataIdMap.get(out.dataId).id,channels=logits.shape[dim],batch=util_exports.sizeFromShape(logits.shape)/channels;return util_exports.sizeFromShape(out.shape)===0||wasmFunc7(xId,outId,channels,batch),out}const softmaxConfig={kernelName:Softmax,backendName:"wasm",setupFunc:setup34,kernelFunc:softmax5};function split12(args){const{inputs,attrs,backend:backend3}=args,{x}=inputs,{numOrSizeSplits,axis}=attrs,$axis=util_exports.parseAxisParam(axis,x.shape)[0],splitSizes=backend_util_exports.prepareSplitSize(x,numOrSizeSplits,axis),begin=new Array(x.shape.length).fill(0),size=x.shape.slice();return splitSizes.map(s=>{const xSliceSize=[...size];xSliceSize[$axis]=s;const xSlice=slice20({inputs:{x},attrs:{begin,size:xSliceSize},backend:backend3});return begin[$axis]+=s,xSlice})}const splitVConfig={kernelName:SplitV,backendName:"wasm",kernelFunc:split12},sqrtConfig2=createUnaryKernelConfig(Sqrt),squareConfig3=createUnaryKernelConfig(Square),supportsFullBroadcast15=!0,squaredDifferenceConfig3=createBinaryKernelConfig(SquaredDifference,supportsFullBroadcast15);let wasmStridedSlice;function setup35(backend3){wasmStridedSlice=backend3.wasm.cwrap(StridedSlice,null,["number","array","number","array","array","array","array","array","number","number"])}function stridedSlice2(args){const{backend:backend3,inputs,attrs}=args,{x}=inputs;let{begin,end,strides}=attrs;strides==null&&(strides=new Array(begin.length));const{beginMask,endMask,ellipsisMask,newAxisMask,shrinkAxisMask}=attrs,ellipsisAxes=backend_util_exports.slice_util.maskToAxes(ellipsisMask);if(ellipsisAxes.length>1)throw new Error("Multiple ellipses in slice is not allowed.");if(ellipsisMask!==0&&newAxisMask!==0)throw new Error("Using both ellipsisMask and newAxisMask is not yet supported.");if(ellipsisMask!==0&&shrinkAxisMask!==0)throw new Error("Using both ellipsisMask and shrinkAxisMask is not yet supported.");const numInterpolatedAxes=x.shape.length-begin.length,expandAxes=backend_util_exports.slice_util.maskToAxes(newAxisMask),newShape=x.shape.slice();expandAxes.forEach(axis=>{begin[axis]=0,end[axis]=1,newShape.splice(axis,0,1)});const xReshaped=reshape91({inputs:{x},attrs:{shape:newShape},backend:backend3}),{begin:normalizedBegin,end:normalizedEnd,strides:normalizedStrides}=backend_util_exports.slice_util.getNormalizedAxes(xReshaped.shape,ellipsisAxes,numInterpolatedAxes,begin,end,strides,beginMask,endMask,ellipsisMask);begin=normalizedBegin,end=normalizedEnd,strides=normalizedStrides;const shrinkAxes=backend_util_exports.slice_util.maskToAxes(shrinkAxisMask);shrinkAxes.forEach(axis=>{end[axis]=begin[axis]+1,strides[axis]=1});const size=backend_util_exports.slice_util.computeOutShape(begin,end,strides),outShape=size.filter((_,axis)=>shrinkAxes.indexOf(axis)===-1),nonStrided=strides.every(v=>v===1);if(nonStrided){const xSliced=slice20({inputs:{x},attrs:{begin,size},backend:backend3});return reshape91({inputs:{x:xSliced},attrs:{shape:outShape},backend:backend3})}const out=backend3.makeOutput(outShape,"float32");if(!outShape.some(axis=>axis===0)){const xId=backend3.dataIdMap.get(xReshaped.dataId).id,xStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(xReshaped.shape)).buffer),beginBytes=new Uint8Array(new Int32Array(begin).buffer),endBytes=new Uint8Array(new Int32Array(end).buffer),stridesBytes=new Uint8Array(new Int32Array(strides).buffer),outputShapeBytes=new Uint8Array(new Int32Array(outShape).buffer),outStridesBytes=new Uint8Array(new Int32Array(util_exports.computeStrides(outShape)).buffer),outId=backend3.dataIdMap.get(out.dataId).id;wasmStridedSlice(xId,xStridesBytes,xReshaped.shape.length,beginBytes,endBytes,stridesBytes,outputShapeBytes,outStridesBytes,outShape.length,outId)}return reshape91({inputs:{x:out},attrs:{shape:outShape},backend:backend3})}const stridedSliceConfig={kernelName:StridedSlice,backendName:"wasm",setupFunc:setup35,kernelFunc:stridedSlice2},supportsFullBroadcast16=!0,subConfig3=createBinaryKernelConfig(Sub,supportsFullBroadcast16);let wasmSum;function setup36(backend3){wasmSum=backend3.wasm.cwrap(Sum,null,["number, number, number"])}function sum28(args){const{backend:backend3,inputs,attrs}=args,{axis,keepDims}=attrs,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id;let inputId=xId,input2=x;const{transposed,axes,originalAxes,inputWasTransposed}=permuteAxesAndTranspose(x,axis,backend3);let reductionAxes=axes;if(inputWasTransposed){const transposedId=backend3.dataIdMap.get(transposed.dataId).id;transposedId!==xId&&(input2=transposed,inputId=transposedId,reductionAxes=backend_util_exports.getInnerMostAxes(reductionAxes.length,input2.shape.length))}backend_util_exports.assertAxesAreInnerMostDims("sum",reductionAxes,input2.shape.length);const[outShape,reduceShape]=backend_util_exports.computeOutAndReduceShapes(input2.shape,reductionAxes),reduceSize=util_exports.sizeFromShape(reduceShape),out=backend3.makeOutput(outShape,input2.dtype);if(util_exports.sizeFromShape(input2.shape)!==0){const outId=backend3.dataIdMap.get(out.dataId).id;wasmSum(inputId,reduceSize,outId)}if(inputWasTransposed&&backend3.disposeData(transposed.dataId),keepDims){const newShape=backend_util_exports.expandShapeToKeepDim(out.shape,originalAxes);out.shape=newShape}return out}const sumConfig={kernelName:Sum,backendName:"wasm",setupFunc:setup36,kernelFunc:sum28},tanhConfig2=createUnaryKernelConfig(Tanh);let wasmTile;function setup37(backend3){wasmTile=backend3.wasm.cwrap(Tile,null,["number","array","number","array","number","number"])}function tile11(args){const{inputs,backend:backend3,attrs}=args,{x}=inputs,xId=backend3.dataIdMap.get(x.dataId).id,{reps}=attrs,newShape=new Array(x.shape.length);for(let i=0;i({dataId,dtype,shape:outShape}))}const unpackConfig={kernelName:Unpack,backendName:"wasm",kernelFunc:unpack};function zerosLike2(args){const{inputs:{x},backend:backend3}=args,out=backend3.makeOutput(x.shape,x.dtype),outVals=backend3.typedArrayFromHeap(out);return outVals.fill(0),out}const zerosLikeConfig={kernelName:ZerosLike,backendName:"wasm",kernelFunc:zerosLike2},kernelConfigs3=[absConfig2,addConfig3,addNConfig,argMaxConfig,avgPoolConfig3,batchMatMulConfig2,castConfig3,clipByValueConfig,concatConfig3,conv2DConfig2,conv2DBackpropInputConfig2,cosConfig3,cropAndResizeConfig,cumsumConfig,depthToSpaceConfig,depthwiseConv2dNativeConfig2,divConfig3,equalConfig,expConfig2,fillConfig2,flipLeftRightConfig3,floorDivConfig,fusedMatMulConfig,fusedBatchNormConfig,fusedConv2DConfig2,fusedDepthwiseConv2DConfig2,gatherNdConfig,gatherV2Config,greaterConfig,greaterEqualConfig,identityConfig3,lessConfig,lessEqualConfig,logConfig2,logicalAndConfig,maxConfig3,maximumConfig,maxPoolConfig3,minConfig,minimumConfig,multiplyConfig3,negateConfig,nonMaxSuppressionV3Config2,nonMaxSuppressionV4Config3,nonMaxSuppressionV5Config3,notEqualConfig3,oneHotConfig,onesLikeConfig,padV2Config2,powConfig,preluConfig2,reluConfig2,relu6Config2,reshapeConfig3,resizeBilinearConfig,reverseConfig,rotateWithOffsetConfig3,rsqrtConfig2,scatterNdConfig,selectV2Config,sigmoidConfig2,sinConfig3,sliceConfig2,softmaxConfig,splitVConfig,sqrtConfig2,squareConfig3,squaredDifferenceConfig3,stridedSliceConfig,subConfig3,sumConfig,tanhConfig2,tileConfig,transposeConfig3,unpackConfig,zerosLikeConfig];for(const kernelConfig of kernelConfigs3)registerKernel(kernelConfig);const ENV4=env();ENV4.registerFlag("WASM_HAS_SIMD_SUPPORT",async()=>WebAssembly.validate(new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11])));ENV4.registerFlag("WASM_HAS_MULTITHREAD_SUPPORT",async()=>{if(ENV4.get("IS_NODE"))return!1;try{return 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(e){return!1}});const tfjs_backend_wasm_threaded_simd=__toModule2(require_tfjs_backend_wasm_threaded_simd()),wasmWorkerContents='var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(" ");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(" ");postMessage({cmd:"alert",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module["instantiateWasm"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module["wasmModule"],info);Module["wasmModule"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd==="load"){Module["DYNAMIC_BASE"]=e.data.DYNAMIC_BASE;Module["DYNAMICTOP_PTR"]=e.data.DYNAMICTOP_PTR;Module["wasmModule"]=e.data.wasmModule;Module["wasmMemory"]=e.data.wasmMemory;Module["buffer"]=Module["wasmMemory"].buffer;Module["ENVIRONMENT_IS_PTHREAD"]=true;if(typeof e.data.urlOrBlob==="string"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({"cmd":"loaded"})}else if(e.data.cmd==="objectTransfer"){Module["PThread"].receiveObjectTransfer(e.data)}else if(e.data.cmd==="run"){Module["__performance_now_clock_drift"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module["__register_pthread_ptr"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module["establishStackSpace"](top,max);Module["_emscripten_tls_init"]();Module["PThread"].receiveObjectTransfer(e.data);Module["PThread"].setThreadStatus(Module["_pthread_self"](),1);try{var result=Module["dynCall_ii"](e.data.start_routine,e.data.arg);if(!Module["getNoExitRuntime"]())Module["PThread"].threadExit(result)}catch(ex){if(ex==="Canceled!"){Module["PThread"].threadCancel()}else if(ex!="unwind"){Atomics.store(Module["HEAPU32"],threadInfoStruct+4>>2,ex instanceof Module["ExitStatus"]?ex.status:-2);Atomics.store(Module["HEAPU32"],threadInfoStruct+0>>2,1);Module["_emscripten_futex_wake"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module["ExitStatus"]))throw ex}}}else if(e.data.cmd==="cancel"){if(threadInfoStruct){Module["PThread"].threadCancel()}}else if(e.data.target==="setimmediate"){}else if(e.data.cmd==="processThreadQueue"){if(threadInfoStruct){Module["_emscripten_current_thread_process_queued_calls"]()}}else{err("worker.js received unknown command "+e.data.cmd);err(e.data)}}catch(ex){err("worker.js onmessage() captured an uncaught exception: "+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process==="object"&&typeof process.versions==="object"&&typeof process.versions.node==="string"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require("worker_threads");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on("message",function(data){onmessage({data:data})});var nodeFS=require("fs");var nodeRead=function(filename){return nodeFS.readFileSync(filename,"utf8")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance==="undefined"){performance={now:function(){return Date.now()}}}}',tfjs_backend_wasm=__toModule2(require_tfjs_backend_wasm()),WASM_PRIORITY=2;class BackendWasm extends KernelBackend{constructor(wasm){super();this.wasm=wasm,this.dataIdNextNumber=1,this.wasm.tfjs.init(),this.dataIdMap=new DataStorage(this,engine15())}write(values,shape,dtype){const dataId={};return this.move(dataId,values,shape,dtype),dataId}numDataIds(){return this.dataIdMap.numDataIds()}async time(f){const start=util_exports.now();f();const kernelMs=util_exports.now()-start;return{kernelMs}}move(dataId,values,shape,dtype){const id=this.dataIdNextNumber++;if(dtype==="string"){const stringBytes=values;this.dataIdMap.set(dataId,{id,stringBytes,shape,dtype,memoryOffset:null});return}const size=util_exports.sizeFromShape(shape),numBytes=size*util_exports.bytesPerElement(dtype),memoryOffset=this.wasm._malloc(numBytes);this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype}),this.wasm.tfjs.registerTensor(id,size,memoryOffset),values!=null&&this.wasm.HEAPU8.set(new Uint8Array(values.buffer,values.byteOffset,numBytes),memoryOffset)}async read(dataId){return this.readSync(dataId)}readSync(dataId){const{memoryOffset,dtype,shape,stringBytes}=this.dataIdMap.get(dataId);if(dtype==="string")return stringBytes;const bytes=this.wasm.HEAPU8.slice(memoryOffset,memoryOffset+util_exports.sizeFromShape(shape)*util_exports.bytesPerElement(dtype));return typedArrayFromBuffer(bytes.buffer,dtype)}disposeData(dataId){const data2=this.dataIdMap.get(dataId);this.wasm._free(data2.memoryOffset),this.wasm.tfjs.disposeData(data2.id),this.dataIdMap.delete(dataId)}floatPrecision(){return 32}getMemoryOffset(dataId){return this.dataIdMap.get(dataId).memoryOffset}dispose(){this.wasm.tfjs.dispose(),this.wasm=null}memory(){return{unreliable:!1}}makeOutput(shape,dtype,memoryOffset){let dataId;if(memoryOffset==null)dataId=this.write(null,shape,dtype);else{dataId={};const id=this.dataIdNextNumber++;this.dataIdMap.set(dataId,{id,memoryOffset,shape,dtype});const size=util_exports.sizeFromShape(shape);this.wasm.tfjs.registerTensor(id,size,memoryOffset)}return{dataId,shape,dtype}}typedArrayFromHeap({shape,dtype,dataId}){const buffer11=this.wasm.HEAPU8.buffer,{memoryOffset}=this.dataIdMap.get(dataId),size=util_exports.sizeFromShape(shape);switch(dtype){case"float32":return new Float32Array(buffer11,memoryOffset,size);case"int32":return new Int32Array(buffer11,memoryOffset,size);case"bool":return new Uint8Array(buffer11,memoryOffset,size);default:throw new Error(`Unknown dtype ${dtype}`)}}}registerBackend("wasm",async()=>{const{wasm}=await init();return new BackendWasm(wasm)},WASM_PRIORITY);function createInstantiateWasmFunc(path){return(imports,callback)=>(util_exports.fetch(path,{credentials:"same-origin"}).then(response=>{response.ok||imports.env.a(`failed to load wasm binary file at '${path}'`),response.arrayBuffer().then(binary=>{WebAssembly.instantiate(binary,imports).then(output=>{callback(output.instance)})})}),{})}function getPathToWasmBinary(simdSupported,threadsSupported,wasmModuleFolder){if(wasmPath!=null)return wasmPath;let path="tfjs-backend-wasm.wasm";return simdSupported&&threadsSupported?path="tfjs-backend-wasm-threaded-simd.wasm":simdSupported&&(path="tfjs-backend-wasm-simd.wasm"),wasmFileMap!=null&&wasmFileMap[path]!=null?wasmFileMap[path]:wasmModuleFolder+path}async function init(){const[simdSupported,threadsSupported]=await Promise.all([env().getAsync("WASM_HAS_SIMD_SUPPORT"),env().getAsync("WASM_HAS_MULTITHREAD_SUPPORT")]);return new Promise((resolve,reject)=>{const factoryConfig={};factoryConfig.locateFile=(path,prefix)=>{if(path.endsWith(".worker.js")){const response=wasmWorkerContents,blob=new Blob([response],{type:"application/javascript"});return URL.createObjectURL(blob)}return path.endsWith(".wasm")?getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:prefix):prefix+path},customFetch&&(factoryConfig.instantiateWasm=createInstantiateWasmFunc(getPathToWasmBinary(simdSupported,threadsSupported,wasmPathPrefix!=null?wasmPathPrefix:"")));let wasm;threadsSupported&&simdSupported&&wasmPath==null?(wasm=tfjs_backend_wasm_threaded_simd.default(factoryConfig),wasm.mainScriptUrlOrBlob=new Blob(["var _scriptDir = undefined; var WasmBackendModuleThreadedSimd = "+tfjs_backend_wasm_threaded_simd.default.toString()],{type:"text/javascript"})):wasm=tfjs_backend_wasm.default(factoryConfig);const voidReturnType=null;wasm.tfjs={init:wasm.cwrap("init",null,[]),registerTensor:wasm.cwrap("register_tensor",null,["number","number","number"]),disposeData:wasm.cwrap("dispose_data",voidReturnType,["number"]),dispose:wasm.cwrap("dispose",voidReturnType,[])};let initialized=!1;wasm.onRuntimeInitialized=()=>{initialized=!0,initAborted=!1,resolve({wasm})},wasm.onAbort=()=>{if(initialized)return;if(initAborted)return;initAborted=!0;const rejectMsg="Make sure the server can serve the `.wasm` file relative to the bundled js file. For more details see https://github.com/tensorflow/tfjs/blob/master/tfjs-backend-wasm/README.md#using-bundlers";reject({message:rejectMsg})}})}function typedArrayFromBuffer(buffer11,dtype){switch(dtype){case"float32":return new Float32Array(buffer11);case"int32":return new Int32Array(buffer11);case"bool":return new Uint8Array(buffer11);default:throw new Error(`Unknown dtype ${dtype}`)}}const wasmBinaryNames=["tfjs-backend-wasm.wasm","tfjs-backend-wasm-simd.wasm","tfjs-backend-wasm-threaded-simd.wasm"];let wasmPath=null,wasmPathPrefix=null,wasmFileMap={},initAborted=!1,customFetch=!1;function setWasmPath(path,usePlatformFetch=!1){if(deprecationWarn("setWasmPath has been deprecated in favor of setWasmPaths and will be removed in a future release."),initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPath()` before you call `tf.setBackend()` or `tf.ready()`");wasmPath=path,customFetch=usePlatformFetch}function setWasmPaths(prefixOrFileMap,usePlatformFetch=!1){if(initAborted)throw new Error("The WASM backend was already initialized. Make sure you call `setWasmPaths()` before you call `tf.setBackend()` or `tf.ready()`");if(typeof prefixOrFileMap=="string")wasmPathPrefix=prefixOrFileMap;else{wasmFileMap=prefixOrFileMap;const missingPaths=wasmBinaryNames.filter(name=>wasmFileMap[name]==null);if(missingPaths.length>0)throw new Error(`There were no entries found for the following binaries: ${missingPaths.join(",")}. Please either call setWasmPaths with a map providing a path for each binary, or with a string indicating the directory where all the binaries can be found.`)}customFetch=usePlatformFetch}const version17="2.7.0";const facemesh=__toModule(require_facemesh()),age=__toModule(require_age()),gender=__toModule(require_gender()),emotion=__toModule(require_emotion()),embedding2=__toModule(require_embedding()),posenet=__toModule(require_posenet());function getBoxSize(box){return[Math.abs(box.endPoint[0]-box.startPoint[0]),Math.abs(box.endPoint[1]-box.startPoint[1])]}function getBoxCenter(box){return[box.startPoint[0]+(box.endPoint[0]-box.startPoint[0])/2,box.startPoint[1]+(box.endPoint[1]-box.startPoint[1])/2]}function cutBoxFromImageAndResize(box,image3,cropSize){const h=image3.shape[1],w=image3.shape[2],boxes=[[box.startPoint[1]/h,box.startPoint[0]/w,box.endPoint[1]/h,box.endPoint[0]/w]];return image.cropAndResize(image3,boxes,[0],cropSize)}function scaleBoxCoordinates(box,factor){const startPoint=[box.startPoint[0]*factor[0],box.startPoint[1]*factor[1]],endPoint=[box.endPoint[0]*factor[0],box.endPoint[1]*factor[1]],palmLandmarks=box.palmLandmarks.map(coord=>{const scaledCoord=[coord[0]*factor[0],coord[1]*factor[1]];return scaledCoord});return{startPoint,endPoint,palmLandmarks,confidence:box.confidence}}function enlargeBox(box,factor=1.5){const center=getBoxCenter(box),size=getBoxSize(box),newHalfSize=[factor*size[0]/2,factor*size[1]/2],startPoint=[center[0]-newHalfSize[0],center[1]-newHalfSize[1]],endPoint=[center[0]+newHalfSize[0],center[1]+newHalfSize[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function squarifyBox(box){const centers=getBoxCenter(box),size=getBoxSize(box),maxEdge=Math.max(...size),halfSize=maxEdge/2,startPoint=[centers[0]-halfSize,centers[1]-halfSize],endPoint=[centers[0]+halfSize,centers[1]+halfSize];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function shiftBox(box,shiftFactor){const boxSize=[box.endPoint[0]-box.startPoint[0],box.endPoint[1]-box.startPoint[1]],shiftVector=[boxSize[0]*shiftFactor[0],boxSize[1]*shiftFactor[1]],startPoint=[box.startPoint[0]+shiftVector[0],box.startPoint[1]+shiftVector[1]],endPoint=[box.endPoint[0]+shiftVector[0],box.endPoint[1]+shiftVector[1]];return{startPoint,endPoint,palmLandmarks:box.palmLandmarks}}function normalizeRadians(angle){return angle-2*Math.PI*Math.floor((angle+Math.PI)/(2*Math.PI))}function computeRotation(point1,point2){const radians=Math.PI/2-Math.atan2(-(point2[1]-point1[1]),point2[0]-point1[0]);return normalizeRadians(radians)}const buildTranslationMatrix=(x,y)=>[[1,0,x],[0,1,y],[0,0,1]];function dot2(v1,v2){let product=0;for(let i=0;itypeof performance!="undefined"?performance.now():parseInt(Number(process.hrtime.bigint())/1e3/1e3);function mergeDeep(...objects){const isObject=obj=>obj&&typeof obj=="object";return objects.reduce((prev,obj)=>(Object.keys(obj||{}).forEach(key=>{const pVal=prev[key],oVal=obj[key];Array.isArray(pVal)&&Array.isArray(oVal)?prev[key]=pVal.concat(...oVal):isObject(pVal)&&isObject(oVal)?prev[key]=mergeDeep(pVal,oVal):prev[key]=oVal}),prev),{})}class Human{constructor(userConfig={}){this.tf=tfjs_esm_exports,this.version=version3,this.config=mergeDeep(config_default,userConfig),this.fx=null,this.state="idle",this.numTensors=0,this.analyzeMemoryLeaks=!1,this.checkSanity=!1,this.firstRun=!0,this.perf={},this.models={facemesh:null,posenet:null,handpose:null,iris:null,age:null,gender:null,emotion:null},this.facemesh=facemesh,this.age=age,this.gender=gender,this.emotion=emotion,this.body=posenet,this.hand=handpose}log(...msg){msg&&this.config.console&&console.log("Human:",...msg)}profile(){return this.config.profile?profile2.data:{}}analyze(...msg){if(!this.analyzeMemoryLeaks)return;const current=engine15().state.numTensors,previous=this.numTensors;this.numTensors=current;const leaked=current-previous;leaked!==0&&this.log(...msg,leaked)}sanity(input2){if(!this.checkSanity)return null;if(!input2)return"input is not defined";if(ENV.flags.IS_NODE&&!(input2 instanceof Tensor))return"input must be a tensor";try{getBackend()}catch(e){return"backend not loaded"}return null}simmilarity(embedding1,embedding22){return this.config.face.embedding.enabled?embedding2.simmilarity(embedding1,embedding22):0}async load(userConfig){this.state="load";const timeStamp=now2();userConfig&&(this.config=mergeDeep(this.config,userConfig)),this.firstRun&&(this.log(`version: ${this.version} TensorFlow/JS version: ${version}`),await this.checkBackend(!0),ENV.flags.IS_BROWSER&&(this.log("configuration:",this.config),this.log("tf flags:",ENV.flags)),this.firstRun=!1),this.config.async?[this.models.facemesh,this.models.age,this.models.gender,this.models.emotion,this.models.embedding,this.models.posenet,this.models.handpose]=await Promise.all([this.models.facemesh||(this.config.face.enabled?facemesh.load(this.config):null),this.models.age||(this.config.face.enabled&&this.config.face.age.enabled?age.load(this.config):null),this.models.gender||(this.config.face.enabled&&this.config.face.gender.enabled?gender.load(this.config):null),this.models.emotion||(this.config.face.enabled&&this.config.face.emotion.enabled?emotion.load(this.config):null),this.models.embedding||(this.config.face.enabled&&this.config.face.embedding.enabled?embedding2.load(this.config):null),this.models.posenet||(this.config.body.enabled?posenet.load(this.config):null),this.models.handpose||(this.config.hand.enabled?handpose.load(this.config):null)]):(this.config.face.enabled&&!this.models.facemesh&&(this.models.facemesh=await facemesh.load(this.config)),this.config.face.enabled&&this.config.face.age.enabled&&!this.models.age&&(this.models.age=await age.load(this.config)),this.config.face.enabled&&this.config.face.gender.enabled&&!this.models.gender&&(this.models.gender=await gender.load(this.config)),this.config.face.enabled&&this.config.face.emotion.enabled&&!this.models.emotion&&(this.models.emotion=await emotion.load(this.config)),this.config.face.enabled&&this.config.face.embedding.enabled&&!this.models.embedding&&(this.models.embedding=await embedding2.load(this.config)),this.config.body.enabled&&!this.models.posenet&&(this.models.posenet=await posenet.load(this.config)),this.config.hand.enabled&&!this.models.handpose&&(this.models.handpose=await handpose.load(this.config)));const current=Math.trunc(now2()-timeStamp);current>(this.perf.load||0)&&(this.perf.load=current)}async checkBackend(force){if(this.config.backend&&this.config.backend!==""&&force||getBackend()!==this.config.backend){const timeStamp=now2();if(this.state="backend",this.log("setting backend:",this.config.backend),this.config.backend==="wasm"){this.log("settings wasm path:",this.config.wasmPath),setWasmPaths(this.config.wasmPath);const simd=await env().getAsync("WASM_HAS_SIMD_SUPPORT");simd||this.log("warning: wasm simd support is not enabled")}if(await setBackend(this.config.backend),enableProdMode(),getBackend()==="webgl"){this.config.deallocate&&(this.log("changing webgl: WEBGL_DELETE_TEXTURE_THRESHOLD:",this.config.deallocate),ENV.set("WEBGL_DELETE_TEXTURE_THRESHOLD",this.config.deallocate?0:-1)),ENV.set("WEBGL_FORCE_F16_TEXTURES",!0),ENV.set("WEBGL_PACK_DEPTHWISECONV",!0);const gl=await backend2().getGPGPUContext().gl;this.log(`gl version:${gl.getParameter(gl.VERSION)} renderer:${gl.getParameter(gl.RENDERER)}`)}await ready(),this.perf.backend=Math.trunc(now2()-timeStamp)}}async detectFace(input2){let timeStamp,ageRes,genderRes,emotionRes,embeddingRes;const faceRes=[];this.state="run:face",timeStamp=now2();const faces=await this.models.facemesh.estimateFaces(input2,this.config);this.perf.face=Math.trunc(now2()-timeStamp);for(const face2 of faces){if(this.analyze("Get Face"),!face2.image||face2.image.isDisposedInternal){this.log("Face object is disposed:",face2.image);continue}this.analyze("Start Age:"),this.config.async?ageRes=this.config.face.age.enabled?age.predict(face2.image,this.config):{}:(this.state="run:age",timeStamp=now2(),ageRes=this.config.face.age.enabled?await age.predict(face2.image,this.config):{},this.perf.age=Math.trunc(now2()-timeStamp)),this.analyze("Start Gender:"),this.config.async?genderRes=this.config.face.gender.enabled?gender.predict(face2.image,this.config):{}:(this.state="run:gender",timeStamp=now2(),genderRes=this.config.face.gender.enabled?await gender.predict(face2.image,this.config):{},this.perf.gender=Math.trunc(now2()-timeStamp)),this.analyze("Start Emotion:"),this.config.async?emotionRes=this.config.face.emotion.enabled?emotion.predict(face2.image,this.config):{}:(this.state="run:emotion",timeStamp=now2(),emotionRes=this.config.face.emotion.enabled?await emotion.predict(face2.image,this.config):{},this.perf.emotion=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.analyze("Start Embedding:"),this.config.async?embeddingRes=this.config.face.embedding.enabled?embedding2.predict(face2.image,this.config):{}:(this.state="run:embedding",timeStamp=now2(),embeddingRes=this.config.face.embedding.enabled?await embedding2.predict(face2.image,this.config):{},this.perf.embedding=Math.trunc(now2()-timeStamp)),this.analyze("End Emotion:"),this.config.async&&([ageRes,genderRes,emotionRes,embeddingRes]=await Promise.all([ageRes,genderRes,emotionRes,embeddingRes])),this.analyze("Finish Face:"),face2.image.dispose();const irisSize=face2.annotations.leftEyeIris&&face2.annotations.rightEyeIris?11.7*Math.max(Math.abs(face2.annotations.leftEyeIris[3][0]-face2.annotations.leftEyeIris[1][0]),Math.abs(face2.annotations.rightEyeIris[4][1]-face2.annotations.rightEyeIris[2][1])):0;faceRes.push({confidence:face2.confidence,box:face2.box,mesh:face2.mesh,annotations:face2.annotations,age:ageRes.age,gender:genderRes.gender,genderConfidence:genderRes.confidence,emotion:emotionRes,embedding:embeddingRes,iris:irisSize!==0?Math.trunc(irisSize)/100:0}),this.analyze("End Face")}return this.analyze("End FaceMesh:"),this.config.async&&(this.perf.face&&delete this.perf.face,this.perf.age&&delete this.perf.age,this.perf.gender&&delete this.perf.gender,this.perf.emotion&&delete this.perf.emotion),faceRes}async image(input2,userConfig={}){this.state="image",this.config=mergeDeep(this.config,userConfig);const process3=image2.process(input2,this.config);return process3.tensor.dispose(),process3.canvas}async detect(input2,userConfig={}){return new Promise(async resolve=>{this.state="config";let timeStamp;this.config=mergeDeep(this.config,userConfig),this.state="check";const error=this.sanity(input2);error&&(this.log(error,input2),resolve({error}));let poseRes,handRes,faceRes;const timeStart=now2();await this.checkBackend(),await this.load(),this.config.scoped&&engine15().startScope(),this.analyze("Start Scope:"),timeStamp=now2();const process3=image2.process(input2,this.config);if(!process3||!process3.tensor){this.log("could not convert input to tensor"),resolve({error:"could not convert input to tensor"});return}this.perf.image=Math.trunc(now2()-timeStamp),this.analyze("Get Image:"),this.config.async?(faceRes=this.config.face.enabled?this.detectFace(process3.tensor):[],this.perf.face&&delete this.perf.face):(this.state="run:face",timeStamp=now2(),faceRes=this.config.face.enabled?await this.detectFace(process3.tensor):[],this.perf.face=Math.trunc(now2()-timeStamp)),this.analyze("Start Body:"),this.config.async?(poseRes=this.config.body.enabled?this.models.posenet.estimatePoses(process3.tensor,this.config):[],this.perf.body&&delete this.perf.body):(this.state="run:body",timeStamp=now2(),poseRes=this.config.body.enabled?await this.models.posenet.estimatePoses(process3.tensor,this.config):[],this.perf.body=Math.trunc(now2()-timeStamp)),this.analyze("End Body:"),this.analyze("Start Hand:"),this.config.async?(handRes=this.config.hand.enabled?this.models.handpose.estimateHands(process3.tensor,this.config):[],this.perf.hand&&delete this.perf.hand):(this.state="run:hand",timeStamp=now2(),handRes=this.config.hand.enabled?await this.models.handpose.estimateHands(process3.tensor,this.config):[],this.perf.hand=Math.trunc(now2()-timeStamp)),this.config.async&&([faceRes,poseRes,handRes]=await Promise.all([faceRes,poseRes,handRes])),process3.tensor.dispose(),this.config.scoped&&engine15().endScope(),this.analyze("End Scope:");let gestureRes=[];this.config.gesture.enabled&&(timeStamp=now2(),gestureRes={face:gesture.face(faceRes),body:gesture.body(poseRes),hand:gesture.hand(handRes)},this.config.async?this.perf.gesture&&delete this.perf.gesture:this.perf.gesture=Math.trunc(now2()-timeStamp)),this.perf.total=Math.trunc(now2()-timeStart),this.state="idle",resolve({face:faceRes,body:poseRes,hand:handRes,gesture:gestureRes,performance:this.perf,canvas:process3.canvas})})}async warmup(userConfig,sample){sample||(sample=new ImageData(255,255));const warmup=await this.detect(sample,userConfig);return this.log("warmed up"),warmup}}export{Human as default};
/**
* @license
* Copyright 2017 Google LLC. All Rights Reserved.
diff --git a/dist/human.esm.js.map b/dist/human.esm.js.map
index 5ae9fe04..3f6bfdeb 100644
--- a/dist/human.esm.js.map
+++ b/dist/human.esm.js.map
@@ -2,6 +2,6 @@
"version": 3,
"sources": ["../src/face/blazeface.js", "../src/face/box.js", "../src/face/util.js", "../src/face/coords.js", "../src/face/facepipeline.js", "../src/face/facemesh.js", "../src/profile.js", "../src/age/age.js", "../src/gender/gender.js", "../src/emotion/emotion.js", "../src/embedding/embedding.js", "../src/body/modelBase.js", "../src/body/modelMobileNet.js", "../src/body/heapSort.js", "../src/body/buildParts.js", "../src/body/keypoints.js", "../src/body/vectors.js", "../src/body/decodePose.js", "../src/body/decodeMultiple.js", "../src/body/util.js", "../src/body/modelPoseNet.js", "../src/body/posenet.js", "../src/hand/handdetector.js", "../src/hand/handpipeline.js", "../src/hand/anchors.js", "../src/hand/handpose.js", "../src/gesture.js", "../src/imagefx.js", "../src/image.js", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Negate.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SelectV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Split.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Negate.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SelectV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Split.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Negate.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SelectV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Split.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "empty:/home/vlado/dev/human/node_modules/node-fetch/browser.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/lib/tychei.js", "empty:crypto", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-core/node_modules/seedrandom/index.js", "../node_modules/seedrandom/lib/alea.js", "../node_modules/seedrandom/lib/xor128.js", "../node_modules/seedrandom/lib/xorwow.js", "../node_modules/seedrandom/lib/xorshift7.js", "../node_modules/seedrandom/lib/xor4096.js", "../node_modules/seedrandom/lib/tychei.js", "../node_modules/seedrandom/seedrandom.js", "../node_modules/seedrandom/index.js", "empty:/home/vlado/dev/human/node_modules/string_decoder/lib/string_decoder.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/alea.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor128.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorwow.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xorshift7.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/xor4096.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/lib/tychei.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/seedrandom.js", "../node_modules/@tensorflow/tfjs-backend-cpu/node_modules/seedrandom/index.js", "empty:path", "empty:worker_threads", "empty:perf_hooks", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.js", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm.js", "../node_modules/@tensorflow/tfjs-core/src/backends/backend.ts", "../node_modules/@tensorflow/tfjs-core/src/util_base.ts", "../node_modules/@tensorflow/tfjs-core/src/environment.ts", "../node_modules/@tensorflow/tfjs-core/src/global_util.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_names.ts", "../node_modules/@tensorflow/tfjs-core/src/kernel_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/util.ts", "../node_modules/@tensorflow/tfjs-core/src/profiler.ts", "../node_modules/@tensorflow/tfjs-core/src/tape.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_format.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/types.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util.ts", "../node_modules/@tensorflow/tfjs-core/src/engine.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/device_util.ts", "../node_modules/@tensorflow/tfjs-core/src/flags.ts", "../node_modules/@tensorflow/tfjs-core/src/tensor_util_env.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/operation.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/complex.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor.ts", "../node_modules/@tensorflow/tfjs-core/src/io/types.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/io/router_registry.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/indexed_db.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/local_storage.ts", "../node_modules/@tensorflow/tfjs-core/src/io/model_management.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_browser.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/platforms/platform_node.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/buffer.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clone.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/print.ts", "../node_modules/@tensorflow/tfjs-core/src/base_side_effects.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/io/browser_files.ts", "../node_modules/@tensorflow/tfjs-core/src/io/progress.ts", "../node_modules/@tensorflow/tfjs-core/src/io/weights_loader.ts", "../node_modules/@tensorflow/tfjs-core/src/io/http.ts", "../node_modules/@tensorflow/tfjs-core/src/io/passthrough.ts", "../node_modules/@tensorflow/tfjs-core/src/io/io.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/confusion_matrix.ts", "../node_modules/@tensorflow/tfjs-core/src/math.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/browser.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice_util.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/serialization.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/test_util.ts", "../node_modules/@tensorflow/tfjs-core/src/version.ts", "../node_modules/@tensorflow/tfjs-core/src/globals.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/add_n.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/axis_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/basic_lstm_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/batchnorm4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/concat_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/diag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/broadcast_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/eye.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fill.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reduce_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/segment_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/imag.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linspace.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_with_argmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/zeros.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moments.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multi_rnn_cell.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/multinomial.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/real.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/outer_product.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pad4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rand_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_gamma.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/random_uniform.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/range.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/reverse_4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/setdiff1d_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice1d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice3d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/slice4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/spectral/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor4d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor5d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/tensor6d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/truncated_normal.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/variable.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/where_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/where_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/boolean_mask.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/compare.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/binary_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/moving_average.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/scatter_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/sparse_to_dense.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/gather_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/dropout.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/in_top_k.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv2d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/depthwise_conv2d_native_backprop_input.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/fused_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hamming_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/hann_window.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/frame.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/signal/stft.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/crop_and_resize.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/flip_left_right.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/rotate_with_offset.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/nonmax_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/array_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/non_max_suppression_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_with_score_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/non_max_suppression_padded_async.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/image/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/band_part.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/gram_schmidt.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/linalg/qr.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/loss_ops_utils.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/compute_weighted_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/absolute_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/cosine_distance.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/hinge_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/huber_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/log_loss.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/mean_squared_error.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/sigmoid_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/losses/softmax_cross_entropy.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/ops.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adadelta_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adagrad_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adam_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/adamax_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/sgd_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/momentum_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/rmsprop_optimizer.ts", "../node_modules/@tensorflow/tfjs-core/src/optimizers/optimizer_constructors.ts", "../node_modules/@tensorflow/tfjs-core/src/train.ts", "../node_modules/@tensorflow/tfjs-core/src/browser_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/rotate_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/array_ops_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/selu_util.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/erf_util.ts", "../node_modules/@tensorflow/tfjs-core/src/log.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/complex_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/backend_util.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/split_shared.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/tile_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/topk_impl.ts", "../node_modules/@tensorflow/tfjs-core/src/backends/kernel_impls.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Abs_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Acosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Add_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AddN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ArgMin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Asinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Atanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/avg_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/AvgPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchMatMul_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BatchToSpaceND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/BroadcastTo_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cast_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Ceil_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ClipByValue_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Concat_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv2DBackpropInput_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/conv3d_backprop_filter.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Conv3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cos_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cosh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Cumsum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/DepthwiseConv2dNative_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Dilation2D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Div_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Elu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Erf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Exp_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Expm1_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Floor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FloorDiv_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/FusedBatchNorm_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GatherV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/GreaterEqual_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Identity_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsFinite_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsInf_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/IsNan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log1p_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Log_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LogSoftmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/local_response_normalization_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/LRN_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/min_max_grad_util.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Max_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Maximum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_3d_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool3D_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/ops/max_pool_backprop.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MaxPool_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Min_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Minimum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/MirrorPad_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Mod_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Multiply_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Negate_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OneHot_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/OnesLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/PadV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Pow_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Prelu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reciprocal_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu6_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Relu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reshape_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeBilinear_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ResizeNearestNeighbor_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Reverse_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Round_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Rsqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SelectV2_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Selu_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sigmoid_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sign_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sin_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sinh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Slice_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softmax_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Softplus_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SpaceToBatchND_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SplitV_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sqrt_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Square_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/SquaredDifference_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Step_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sub_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Sum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tan_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tanh_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Tile_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Transpose_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/Unpack_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/UnsortedSegmentSum_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/gradients/ZerosLike_grad.ts", "../node_modules/@tensorflow/tfjs-core/src/register_all_gradients.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/abs.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/acosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/add.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/all.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/any.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/arg_min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_scalar.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as_type.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as3d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as4d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/as5d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/asinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atan2.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/atanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/avg_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batch_to_space_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/batchnorm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/broadcast_to.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cast.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ceil.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/clip_by_value.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/concat.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv1d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d_transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cos.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cosh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/cumsum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depth_to_space.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2D_deprecated.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/depthwise_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dilation2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_no_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/div.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/dot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/elu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/erf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expand_dims.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/expm1.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/fft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/flatten.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/floorDiv.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/gather.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/greater.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ifft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/irfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_finite.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_inf.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/is_nan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/leaky_relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/less.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/local_response_normalization.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log_sum_exp.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/log1p.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_and.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_not.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_or.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/logical_xor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mat_mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max_pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/max.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/maximum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mean.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/min.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/minimum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mirror_pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/mul.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/neg.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/norm.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/not_equal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/one_hot.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/ones_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pad.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/pow.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prelu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/prod.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reciprocal.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/relu6.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape_as.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reshape.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_bilinear.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/resize_nearest_neighbor.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/reverse.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rfft.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/round.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/rsqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/selu.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/separable_conv2d.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sigmoid.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sign.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sin.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sinh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softmax.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/softplus.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/space_to_batch_nd.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/split.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sqrt.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/square.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squared_difference_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/squeeze.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/stack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/step.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/strided_slice.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub_strict.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sub.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tan.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tanh.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/tile.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_bool.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_float.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/to_int.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/topk.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/transpose.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unique.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unsorted_segment_sum.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/unstack.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/where.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/zeros_like.ts", "../node_modules/@tensorflow/tfjs-core/src/public/chained_ops/register_all_chained_ops.ts", "../node_modules/@tensorflow/tfjs-core/src/index.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/errors.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/generic_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_constraints.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/common.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/math_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/tfjs_backend.ts", "../node_modules/@tensorflow/tfjs-layers/src/keras_format/initializer_config.ts", "../node_modules/@tensorflow/tfjs-layers/src/initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_initializers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/backend/state.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/types_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/variable_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/variables.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/topology.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/input_layer.ts", "../node_modules/@tensorflow/tfjs-layers/src/logs.ts", "../node_modules/@tensorflow/tfjs-layers/src/base_callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/serialization.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/losses.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/optimizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/user_defined_metadata.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/layer_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/serialization_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/version.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/executor.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/container.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_dataset.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training_tensors.ts", "../node_modules/@tensorflow/tfjs-layers/src/engine/training.ts", "../node_modules/@tensorflow/tfjs-layers/src/models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports.ts", "../node_modules/@tensorflow/tfjs-layers/src/activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/advanced_activations.ts", "../node_modules/@tensorflow/tfjs-layers/src/utils/conv_utils.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_depthwise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/convolutional_recurrent.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/core.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/embeddings.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/merge.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/noise.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/normalization.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/padding.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/pooling.ts", "../node_modules/@tensorflow/tfjs-layers/src/layers/wrappers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_layers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_metrics.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_models.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/exports_regularizers.ts", "../node_modules/@tensorflow/tfjs-layers/src/callbacks.ts", "../node_modules/@tensorflow/tfjs-layers/src/index.ts", "../node_modules/@tensorflow/tfjs-converter/src/data/compiled_api.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/register.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/arithmetic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/basic_math.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/control.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/convolution.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/creation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/dynamic.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/evaluation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/graph.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/image.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/logical.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/matrices.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/normalization.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/reduction.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/slice_join.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/spectral.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/op_list/transformation.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_mapper.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/custom_op/node_value_impl.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/arithmetic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/basic_math_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_utils.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_array.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/tensor_list.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/control_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/convolution_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/creation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/dynamic_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/evaluation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/hash_table.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/hash_table_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/image_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/logical_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/matrices_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/normalization_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/reduction_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/slice_join_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/spectral_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/executors/transformation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/operations/operation_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/execution_context.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/model_analysis.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_executor.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/resource_manager.ts", "../node_modules/@tensorflow/tfjs-converter/src/executor/graph_model.ts", "../node_modules/@tensorflow/tfjs-converter/src/version.ts", "../node_modules/@tensorflow/tfjs-converter/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_map.ts", "../node_modules/@tensorflow/tfjs-data/src/util/deep_clone.ts", "../node_modules/@tensorflow/tfjs-data/src/util/ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/util/growing_ring_buffer.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/lazy_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/text_line_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/datasets/csv_dataset.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/microphone_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/webcam_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/datasource.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/string_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/byte_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/file_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/iterators/url_chunk_iterator.ts", "../node_modules/@tensorflow/tfjs-data/src/util/source_util.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/file_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/sources/url_data_source.ts", "../node_modules/@tensorflow/tfjs-data/src/readers.ts", "../node_modules/@tensorflow/tfjs-data/src/version.ts", "../node_modules/@tensorflow/tfjs-data/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/cpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/backend_cpu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/binary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/unary_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Ceil.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Expm1.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Floor.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/shared.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Elu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fused_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Acosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Asinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Atanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/pool_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Clip.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropFilterV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Conv3DBackpropInputV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Cosh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/DepthwiseConv2dNativeBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropFilter.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Dilation2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Erf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/utils/fft_utils.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsFinite.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsInf.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/IsNaN.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Log1p.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/LogicalNot.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Reciprocal.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Round.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Selu.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sign.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sinh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Softplus.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/SpaceToBatchND.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Step.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-cpu/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/canvas_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tex_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flags_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/shared.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/addn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/packing_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/glsl_version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/shader_compiler.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/argminmax_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/avg_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/clip_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/complex_abs_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_backprop_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/conv_packed_gpu_depthwise.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/crop_and_resize_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/cumsum_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/decode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/depth_to_space_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/diag_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_float_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/encode_matrix_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fill_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gather_nd_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_util.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_context.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/gpgpu_math.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/im2col_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_grad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/lrn_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/max_pool_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mulmat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/multinomial_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/onehot_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/pool_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reduce_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reshape_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_bilinear_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_backprop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/resize_nearest_neighbor_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/reverse_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/scatter_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/segment_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/select_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/slice_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/strided_slice_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/texture_manager.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/tile_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unaryop_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/unpack_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/backend_webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/webgl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Complex.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/kernel_funcs_utils.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Atan2.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/AvgPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/batchnorm_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/BatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Real.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/int.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/concat_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Imag.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/fft_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/flip_left_right_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels_utils/from_pixels_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/FromPixels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/IFFT.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mean_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernel_utils/reduce.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/transpose_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolBackprop.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MaxPoolWithArgmax.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean_impl.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Mean.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/mirror_pad_packed_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/MirrorPad.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/binaryop_complex_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/rotate_gpu.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Tan.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/kernels/Unique.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-webgl/src/index.ts", "../node_modules/@tensorflow/tfjs/src/version.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs/src/index.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/types.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/_FusedMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/unary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Abs.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/binary_kernel.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Add.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AddN.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Identity.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Transpose.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/kernel_utils.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ArgMax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/AvgPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reshape.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/BatchMatMul.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cast.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ClipByValue.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Concat.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Conv2DBackpropInput.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cos.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/CropAndResize.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Cumsum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthToSpace.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/DepthwiseConv2dNative.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Div.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Equal.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Exp.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Fill.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FlipLeftRight.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FloorDiv.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedBatchNorm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/FusedDepthwiseConv2D.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GatherV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Greater.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/GreaterEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Less.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LessEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Log.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/LogicalAnd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Max.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Maximum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/MaxPool.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Min.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Minimum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Multiply.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Negate.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppression_util.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV3.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV4.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NonMaxSuppressionV5.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/NotEqual.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OneHot.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/OnesLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/PadV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Pow.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Prelu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Relu6.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ResizeBilinear.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Reverse.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/RotateWithOffset.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Rsqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ScatterNd.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SelectV2.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sigmoid.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sin.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Slice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Softmax.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Split.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sqrt.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Square.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/SquaredDifference.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/StridedSlice.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sub.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Sum.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tanh.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Tile.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/Unpack.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/kernels/ZerosLike.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/register_all_kernels.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/flags_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/wasm-out/tfjs-backend-wasm-threaded-simd.worker.js", "../node_modules/@tensorflow/tfjs-backend-wasm/src/backend_wasm.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/version.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/base.ts", "../node_modules/@tensorflow/tfjs-backend-wasm/src/index.ts", "../src/human.js", "../src/hand/box.js", "../src/hand/util.js", "../src/human.js", "../config.js", "../src/human.js"],
"sourcesContent": ["import * as tf from '../../dist/tfjs.esm.js';\n\nconst NUM_LANDMARKS = 6;\n\nfunction generateAnchors(inputSize) {\n const spec = { strides: [inputSize / 16, inputSize / 8], anchors: [2, 6] };\n const anchors = [];\n for (let i = 0; i < spec.strides.length; i++) {\n const stride = spec.strides[i];\n const gridRows = Math.floor((inputSize + stride - 1) / stride);\n const gridCols = Math.floor((inputSize + stride - 1) / stride);\n const anchorsNum = spec.anchors[i];\n for (let gridY = 0; gridY < gridRows; gridY++) {\n const anchorY = stride * (gridY + 0.5);\n for (let gridX = 0; gridX < gridCols; gridX++) {\n const anchorX = stride * (gridX + 0.5);\n for (let n = 0; n < anchorsNum; n++) {\n anchors.push([anchorX, anchorY]);\n }\n }\n }\n }\n return anchors;\n}\n\nconst disposeBox = (box) => {\n box.startEndTensor.dispose();\n box.startPoint.dispose();\n box.endPoint.dispose();\n};\n\nconst createBox = (startEndTensor) => ({\n startEndTensor,\n startPoint: tf.slice(startEndTensor, [0, 0], [-1, 2]),\n endPoint: tf.slice(startEndTensor, [0, 2], [-1, 2]),\n});\n\nconst scaleBox = (box, factors) => {\n const starts = tf.mul(box.startPoint, factors);\n const ends = tf.mul(box.endPoint, factors);\n const newCoordinates = tf.concat2d([starts, ends], 1);\n return createBox(newCoordinates);\n};\n\nfunction decodeBounds(boxOutputs, anchors, inputSize) {\n const boxStarts = tf.slice(boxOutputs, [0, 1], [-1, 2]);\n const centers = tf.add(boxStarts, anchors);\n const boxSizes = tf.slice(boxOutputs, [0, 3], [-1, 2]);\n const boxSizesNormalized = tf.div(boxSizes, inputSize);\n const centersNormalized = tf.div(centers, inputSize);\n const halfBoxSize = tf.div(boxSizesNormalized, 2);\n const starts = tf.sub(centersNormalized, halfBoxSize);\n const ends = tf.add(centersNormalized, halfBoxSize);\n const startNormalized = tf.mul(starts, inputSize);\n const endNormalized = tf.mul(ends, inputSize);\n const concatAxis = 1;\n return tf.concat2d([startNormalized, endNormalized], concatAxis);\n}\n\nfunction scaleBoxFromPrediction(face, scaleFactor) {\n return tf.tidy(() => {\n const box = face['box'] ? face['box'] : face;\n return scaleBox(box, scaleFactor).startEndTensor.squeeze();\n });\n}\n\nclass BlazeFaceModel {\n constructor(model, config) {\n this.blazeFaceModel = model;\n this.width = config.face.detector.inputSize;\n this.height = config.face.detector.inputSize;\n this.anchorsData = generateAnchors(config.face.detector.inputSize);\n this.anchors = tf.tensor2d(this.anchorsData);\n this.inputSize = tf.tensor1d([this.width, this.height]);\n this.config = config;\n this.scaleFaces = 0.8;\n }\n\n async getBoundingBoxes(inputImage) {\n // sanity check on input\n if ((!inputImage) || (inputImage.isDisposedInternal) || (inputImage.shape.length !== 4) || (inputImage.shape[1] < 1) || (inputImage.shape[2] < 1)) return null;\n const [detectedOutputs, boxes, scores] = tf.tidy(() => {\n const resizedImage = inputImage.resizeBilinear([this.width, this.height]);\n // const normalizedImage = tf.mul(tf.sub(resizedImage.div(255), 0.5), 2);\n const normalizedImage = tf.sub(resizedImage.div(127.5), 1);\n const batchedPrediction = this.blazeFaceModel.predict(normalizedImage);\n let prediction;\n // are we using tfhub or pinto converted model?\n if (Array.isArray(batchedPrediction)) {\n const sorted = batchedPrediction.sort((a, b) => a.size - b.size);\n const concat384 = tf.concat([sorted[0], sorted[2]], 2); // dim: 384, 1 + 16\n const concat512 = tf.concat([sorted[1], sorted[3]], 2); // dim: 512, 1 + 16\n const concat = tf.concat([concat512, concat384], 1);\n prediction = concat.squeeze(0);\n } else {\n prediction = batchedPrediction.squeeze(); // when using tfhub model\n }\n const decodedBounds = decodeBounds(prediction, this.anchors, this.inputSize);\n const logits = tf.slice(prediction, [0, 0], [-1, 1]);\n const scoresOut = tf.sigmoid(logits).squeeze();\n return [prediction, decodedBounds, scoresOut];\n });\n const boxIndicesTensor = await tf.image.nonMaxSuppressionAsync(boxes, scores, this.config.face.detector.maxFaces, this.config.face.detector.iouThreshold, this.config.face.detector.scoreThreshold);\n const boxIndices = boxIndicesTensor.arraySync();\n boxIndicesTensor.dispose();\n const boundingBoxesMap = boxIndices.map((boxIndex) => tf.slice(boxes, [boxIndex, 0], [1, -1]));\n const boundingBoxes = boundingBoxesMap.map((boundingBox) => {\n const vals = boundingBox.arraySync();\n boundingBox.dispose();\n return vals;\n });\n\n const scoresVal = scores.dataSync();\n const annotatedBoxes = [];\n for (const i in boundingBoxes) {\n const boxIndex = boxIndices[i];\n const confidence = scoresVal[boxIndex];\n if (confidence > this.config.face.detector.minConfidence) {\n const box = createBox(boundingBoxes[i]);\n const anchor = this.anchorsData[boxIndex];\n const landmarks = tf.tidy(() => tf.slice(detectedOutputs, [boxIndex, NUM_LANDMARKS - 1], [1, -1]).squeeze().reshape([NUM_LANDMARKS, -1]));\n annotatedBoxes.push({ box, landmarks, anchor, confidence });\n }\n }\n detectedOutputs.dispose();\n boxes.dispose();\n scores.dispose();\n detectedOutputs.dispose();\n return {\n boxes: annotatedBoxes,\n scaleFactor: [inputImage.shape[2] / this.width, inputImage.shape[1] / this.height],\n };\n }\n\n async estimateFaces(input) {\n const { boxes, scaleFactor } = await this.getBoundingBoxes(input);\n const faces = [];\n for (const face of boxes) {\n const landmarkData = face.landmarks.arraySync();\n const scaledBox = scaleBoxFromPrediction(face, scaleFactor);\n const boxData = scaleBox.arraySync();\n const probabilityData = face.probability.arraySync();\n const anchor = face.anchor;\n const [scaleFactorX, scaleFactorY] = scaleFactor;\n const scaledLandmarks = landmarkData\n .map((landmark) => ([\n (landmark[0] + anchor[0]) * scaleFactorX,\n (landmark[1] + anchor[1]) * scaleFactorY,\n ]));\n const normalizedFace = {\n topLeft: boxData.slice(0, 2),\n bottomRight: boxData.slice(2),\n landmarks: scaledLandmarks,\n probability: probabilityData,\n };\n disposeBox(face.box);\n face.landmarks.dispose();\n face.probability.dispose();\n scaledBox.dispose();\n faces.push(normalizedFace);\n }\n return faces;\n }\n}\n\nasync function load(config) {\n const blazeface = await tf.loadGraphModel(config.face.detector.modelPath, { fromTFHub: config.face.detector.modelPath.includes('tfhub.dev') });\n const model = new BlazeFaceModel(blazeface, config);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n return model;\n}\n\nexports.load = load;\nexports.BlazeFaceModel = BlazeFaceModel;\nexports.disposeBox = disposeBox;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nfunction scaleBoxCoordinates(box, factor) {\n const startPoint = [box.startPoint[0] * factor[0], box.startPoint[1] * factor[1]];\n const endPoint = [box.endPoint[0] * factor[0], box.endPoint[1] * factor[1]];\n return { startPoint, endPoint };\n}\nexports.scaleBoxCoordinates = scaleBoxCoordinates;\n\nfunction getBoxSize(box) {\n return [\n Math.abs(box.endPoint[0] - box.startPoint[0]),\n Math.abs(box.endPoint[1] - box.startPoint[1]),\n ];\n}\nexports.getBoxSize = getBoxSize;\n\nfunction getBoxCenter(box) {\n return [\n box.startPoint[0] + (box.endPoint[0] - box.startPoint[0]) / 2,\n box.startPoint[1] + (box.endPoint[1] - box.startPoint[1]) / 2,\n ];\n}\nexports.getBoxCenter = getBoxCenter;\n\nfunction cutBoxFromImageAndResize(box, image, cropSize) {\n const h = image.shape[1];\n const w = image.shape[2];\n const boxes = [[\n box.startPoint[1] / h, box.startPoint[0] / w, box.endPoint[1] / h,\n box.endPoint[0] / w,\n ]];\n return tf.image.cropAndResize(image, boxes, [0], cropSize);\n}\nexports.cutBoxFromImageAndResize = cutBoxFromImageAndResize;\n\nfunction enlargeBox(box, factor = 1.5) {\n const center = getBoxCenter(box);\n const size = getBoxSize(box);\n const newHalfSize = [factor * size[0] / 2, factor * size[1] / 2];\n const startPoint = [center[0] - newHalfSize[0], center[1] - newHalfSize[1]];\n const endPoint = [center[0] + newHalfSize[0], center[1] + newHalfSize[1]];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.enlargeBox = enlargeBox;\n\nfunction squarifyBox(box) {\n const centers = getBoxCenter(box);\n const size = getBoxSize(box);\n const maxEdge = Math.max(...size);\n const halfSize = maxEdge / 2;\n const startPoint = [centers[0] - halfSize, centers[1] - halfSize];\n const endPoint = [centers[0] + halfSize, centers[1] + halfSize];\n return { startPoint, endPoint, landmarks: box.landmarks };\n}\nexports.squarifyBox = squarifyBox;\n", "exports.IDENTITY_MATRIX = [[1, 0, 0], [0, 1, 0], [0, 0, 1]];\n/**\n * Normalizes the provided angle to the range -pi to pi.\n * @param angle The angle in radians to be normalized.\n */\nfunction normalizeRadians(angle) {\n return angle - 2 * Math.PI * Math.floor((angle + Math.PI) / (2 * Math.PI));\n}\nexports.normalizeRadians = normalizeRadians;\n/**\n * Computes the angle of rotation between two anchor points.\n * @param point1 First anchor point\n * @param point2 Second anchor point\n */\nfunction computeRotation(point1, point2) {\n const radians = Math.PI / 2 - Math.atan2(-(point2[1] - point1[1]), point2[0] - point1[0]);\n return normalizeRadians(radians);\n}\nexports.computeRotation = computeRotation;\nfunction radToDegrees(rad) {\n return rad * 180 / Math.PI;\n}\nexports.radToDegrees = radToDegrees;\nfunction buildTranslationMatrix(x, y) {\n return [[1, 0, x], [0, 1, y], [0, 0, 1]];\n}\nfunction dot(v1, v2) {\n let product = 0;\n for (let i = 0; i < v1.length; i++) {\n product += v1[i] * v2[i];\n }\n return product;\n}\nexports.dot = dot;\nfunction getColumnFrom2DArr(arr, columnIndex) {\n const column = [];\n for (let i = 0; i < arr.length; i++) {\n column.push(arr[i][columnIndex]);\n }\n return column;\n}\nexports.getColumnFrom2DArr = getColumnFrom2DArr;\nfunction multiplyTransformMatrices(mat1, mat2) {\n const product = [];\n const size = mat1.length;\n for (let row = 0; row < size; row++) {\n product.push([]);\n for (let col = 0; col < size; col++) {\n product[row].push(dot(mat1[row], getColumnFrom2DArr(mat2, col)));\n }\n }\n return product;\n}\nfunction buildRotationMatrix(rotation, center) {\n const cosA = Math.cos(rotation);\n const sinA = Math.sin(rotation);\n const rotationMatrix = [[cosA, -sinA, 0], [sinA, cosA, 0], [0, 0, 1]];\n const translationMatrix = buildTranslationMatrix(center[0], center[1]);\n const translationTimesRotation = multiplyTransformMatrices(translationMatrix, rotationMatrix);\n const negativeTranslationMatrix = buildTranslationMatrix(-center[0], -center[1]);\n return multiplyTransformMatrices(translationTimesRotation, negativeTranslationMatrix);\n}\nexports.buildRotationMatrix = buildRotationMatrix;\nfunction invertTransformMatrix(matrix) {\n const rotationComponent = [[matrix[0][0], matrix[1][0]], [matrix[0][1], matrix[1][1]]];\n const translationComponent = [matrix[0][2], matrix[1][2]];\n const invertedTranslation = [\n -dot(rotationComponent[0], translationComponent),\n -dot(rotationComponent[1], translationComponent),\n ];\n return [\n rotationComponent[0].concat(invertedTranslation[0]),\n rotationComponent[1].concat(invertedTranslation[1]),\n [0, 0, 1],\n ];\n}\nexports.invertTransformMatrix = invertTransformMatrix;\nfunction rotatePoint(homogeneousCoordinate, rotationMatrix) {\n return [\n dot(homogeneousCoordinate, rotationMatrix[0]),\n dot(homogeneousCoordinate, rotationMatrix[1]),\n ];\n}\nexports.rotatePoint = rotatePoint;\nfunction xyDistanceBetweenPoints(a, b) {\n return Math.sqrt(((a[0] - b[0]) ** 2) + ((a[1] - b[1]) ** 2));\n}\nexports.xyDistanceBetweenPoints = xyDistanceBetweenPoints;\n", "const MESH_ANNOTATIONS = {\n silhouette: [\n 10, 338, 297, 332, 284, 251, 389, 356, 454, 323, 361, 288,\n 397, 365, 379, 378, 400, 377, 152, 148, 176, 149, 150, 136,\n 172, 58, 132, 93, 234, 127, 162, 21, 54, 103, 67, 109,\n ],\n lipsUpperOuter: [61, 185, 40, 39, 37, 0, 267, 269, 270, 409, 291],\n lipsLowerOuter: [146, 91, 181, 84, 17, 314, 405, 321, 375, 291],\n lipsUpperInner: [78, 191, 80, 81, 82, 13, 312, 311, 310, 415, 308],\n lipsLowerInner: [78, 95, 88, 178, 87, 14, 317, 402, 318, 324, 308],\n rightEyeUpper0: [246, 161, 160, 159, 158, 157, 173],\n rightEyeLower0: [33, 7, 163, 144, 145, 153, 154, 155, 133],\n rightEyeUpper1: [247, 30, 29, 27, 28, 56, 190],\n rightEyeLower1: [130, 25, 110, 24, 23, 22, 26, 112, 243],\n rightEyeUpper2: [113, 225, 224, 223, 222, 221, 189],\n rightEyeLower2: [226, 31, 228, 229, 230, 231, 232, 233, 244],\n rightEyeLower3: [143, 111, 117, 118, 119, 120, 121, 128, 245],\n rightEyebrowUpper: [156, 70, 63, 105, 66, 107, 55, 193],\n rightEyebrowLower: [35, 124, 46, 53, 52, 65],\n rightEyeIris: [473, 474, 475, 476, 477],\n leftEyeUpper0: [466, 388, 387, 386, 385, 384, 398],\n leftEyeLower0: [263, 249, 390, 373, 374, 380, 381, 382, 362],\n leftEyeUpper1: [467, 260, 259, 257, 258, 286, 414],\n leftEyeLower1: [359, 255, 339, 254, 253, 252, 256, 341, 463],\n leftEyeUpper2: [342, 445, 444, 443, 442, 441, 413],\n leftEyeLower2: [446, 261, 448, 449, 450, 451, 452, 453, 464],\n leftEyeLower3: [372, 340, 346, 347, 348, 349, 350, 357, 465],\n leftEyebrowUpper: [383, 300, 293, 334, 296, 336, 285, 417],\n leftEyebrowLower: [265, 353, 276, 283, 282, 295],\n leftEyeIris: [468, 469, 470, 471, 472],\n midwayBetweenEyes: [168],\n noseTip: [1],\n noseBottom: [2],\n noseRightCorner: [98],\n noseLeftCorner: [327],\n rightCheek: [205],\n leftCheek: [425],\n};\n\nconst MESH_TO_IRIS_INDICES_MAP = [ // A mapping from facemesh model keypoints to iris model keypoints.\n { key: 'EyeUpper0', indices: [9, 10, 11, 12, 13, 14, 15] },\n { key: 'EyeUpper1', indices: [25, 26, 27, 28, 29, 30, 31] },\n { key: 'EyeUpper2', indices: [41, 42, 43, 44, 45, 46, 47] },\n { key: 'EyeLower0', indices: [0, 1, 2, 3, 4, 5, 6, 7, 8] },\n { key: 'EyeLower1', indices: [16, 17, 18, 19, 20, 21, 22, 23, 24] },\n { key: 'EyeLower2', indices: [32, 33, 34, 35, 36, 37, 38, 39, 40] },\n { key: 'EyeLower3', indices: [54, 55, 56, 57, 58, 59, 60, 61, 62] },\n { key: 'EyebrowUpper', indices: [63, 64, 65, 66, 67, 68, 69, 70] },\n { key: 'EyebrowLower', indices: [48, 49, 50, 51, 52, 53] },\n];\n\nconst UV468 = [\n [0.499976992607117, 0.652534008026123],\n [0.500025987625122, 0.547487020492554],\n [0.499974012374878, 0.602371990680695],\n [0.482113003730774, 0.471979022026062],\n [0.500150978565216, 0.527155995368958],\n [0.499909996986389, 0.498252987861633],\n [0.499523013830185, 0.40106201171875],\n [0.289712011814117, 0.380764007568359],\n [0.499954998493195, 0.312398016452789],\n [0.499987006187439, 0.269918978214264],\n [0.500023007392883, 0.107050001621246],\n [0.500023007392883, 0.666234016418457],\n [0.5000159740448, 0.679224014282227],\n [0.500023007392883, 0.692348003387451],\n [0.499976992607117, 0.695277988910675],\n [0.499976992607117, 0.70593398809433],\n [0.499976992607117, 0.719385027885437],\n [0.499976992607117, 0.737019002437592],\n [0.499967992305756, 0.781370997428894],\n [0.499816000461578, 0.562981009483337],\n [0.473773002624512, 0.573909997940063],\n [0.104906998574734, 0.254140973091125],\n [0.365929991006851, 0.409575998783112],\n [0.338757991790771, 0.41302502155304],\n [0.311120003461838, 0.409460008144379],\n [0.274657994508743, 0.389131009578705],\n [0.393361985683441, 0.403706014156342],\n [0.345234006643295, 0.344011008739471],\n [0.370094001293182, 0.346076011657715],\n [0.319321990013123, 0.347265005111694],\n [0.297903001308441, 0.353591024875641],\n [0.24779200553894, 0.410809993743896],\n [0.396889001131058, 0.842755019664764],\n [0.280097991228104, 0.375599980354309],\n [0.106310002505779, 0.399955987930298],\n [0.2099249958992, 0.391353011131287],\n [0.355807989835739, 0.534406006336212],\n [0.471751004457474, 0.65040397644043],\n [0.474155008792877, 0.680191993713379],\n [0.439785003662109, 0.657229006290436],\n [0.414617002010345, 0.66654098033905],\n [0.450374007225037, 0.680860996246338],\n [0.428770989179611, 0.682690978050232],\n [0.374971002340317, 0.727805018424988],\n [0.486716985702515, 0.547628998756409],\n [0.485300987958908, 0.527395009994507],\n [0.257764995098114, 0.314490020275116],\n [0.401223003864288, 0.455172002315521],\n [0.429818987846375, 0.548614978790283],\n [0.421351999044418, 0.533740997314453],\n [0.276895999908447, 0.532056987285614],\n [0.483370006084442, 0.499586999416351],\n [0.33721199631691, 0.282882988452911],\n [0.296391993761063, 0.293242990970612],\n [0.169294998049736, 0.193813979625702],\n [0.447580009698868, 0.302609980106354],\n [0.392390012741089, 0.353887975215912],\n [0.354490011930466, 0.696784019470215],\n [0.067304998636246, 0.730105042457581],\n [0.442739009857178, 0.572826027870178],\n [0.457098007202148, 0.584792017936707],\n [0.381974011659622, 0.694710969924927],\n [0.392388999462128, 0.694203019142151],\n [0.277076005935669, 0.271932005882263],\n [0.422551989555359, 0.563233017921448],\n [0.385919004678726, 0.281364023685455],\n [0.383103013038635, 0.255840003490448],\n [0.331431001424789, 0.119714021682739],\n [0.229923993349075, 0.232002973556519],\n [0.364500999450684, 0.189113974571228],\n [0.229622006416321, 0.299540996551514],\n [0.173287004232407, 0.278747975826263],\n [0.472878992557526, 0.666198015213013],\n [0.446828007698059, 0.668527007102966],\n [0.422762006521225, 0.673889994621277],\n [0.445307999849319, 0.580065965652466],\n [0.388103008270264, 0.693961024284363],\n [0.403039008378983, 0.706539988517761],\n [0.403629004955292, 0.693953037261963],\n [0.460041999816895, 0.557139039039612],\n [0.431158006191254, 0.692366003990173],\n [0.452181994915009, 0.692366003990173],\n [0.475387006998062, 0.692366003990173],\n [0.465828001499176, 0.779190003871918],\n [0.472328990697861, 0.736225962638855],\n [0.473087012767792, 0.717857003211975],\n [0.473122000694275, 0.704625964164734],\n [0.473033010959625, 0.695277988910675],\n [0.427942007780075, 0.695277988910675],\n [0.426479011774063, 0.703539967536926],\n [0.423162013292313, 0.711845993995667],\n [0.4183090031147, 0.720062971115112],\n [0.390094995498657, 0.639572978019714],\n [0.013953999616206, 0.560034036636353],\n [0.499913990497589, 0.58014702796936],\n [0.413199990987778, 0.69539999961853],\n [0.409626007080078, 0.701822996139526],\n [0.468080013990402, 0.601534962654114],\n [0.422728985548019, 0.585985004901886],\n [0.463079988956451, 0.593783974647522],\n [0.37211999297142, 0.47341400384903],\n [0.334562003612518, 0.496073007583618],\n [0.411671012639999, 0.546965003013611],\n [0.242175996303558, 0.14767599105835],\n [0.290776997804642, 0.201445996761322],\n [0.327338010072708, 0.256527006626129],\n [0.399509996175766, 0.748921036720276],\n [0.441727995872498, 0.261676013469696],\n [0.429764986038208, 0.187834024429321],\n [0.412198007106781, 0.108901023864746],\n [0.288955003023148, 0.398952007293701],\n [0.218936994671822, 0.435410976409912],\n [0.41278201341629, 0.398970007896423],\n [0.257135003805161, 0.355440020561218],\n [0.427684992551804, 0.437960982322693],\n [0.448339998722076, 0.536936044692993],\n [0.178560003638268, 0.45755398273468],\n [0.247308000922203, 0.457193970680237],\n [0.286267012357712, 0.467674970626831],\n [0.332827985286713, 0.460712015628815],\n [0.368755996227264, 0.447206974029541],\n [0.398963987827301, 0.432654976844788],\n [0.476410001516342, 0.405806005001068],\n [0.189241006970406, 0.523923993110657],\n [0.228962004184723, 0.348950982093811],\n [0.490725994110107, 0.562400996685028],\n [0.404670000076294, 0.485132992267609],\n [0.019469000399113, 0.401564002037048],\n [0.426243007183075, 0.420431017875671],\n [0.396993011236191, 0.548797011375427],\n [0.266469985246658, 0.376977026462555],\n [0.439121007919312, 0.51895797252655],\n [0.032313998788595, 0.644356966018677],\n [0.419054001569748, 0.387154996395111],\n [0.462783008813858, 0.505746960639954],\n [0.238978996872902, 0.779744982719421],\n [0.198220998048782, 0.831938028335571],\n [0.107550002634525, 0.540755033493042],\n [0.183610007166862, 0.740257024765015],\n [0.134409993886948, 0.333683013916016],\n [0.385764002799988, 0.883153975009918],\n [0.490967005491257, 0.579378008842468],\n [0.382384985685349, 0.508572995662689],\n [0.174399003386497, 0.397670984268188],\n [0.318785011768341, 0.39623498916626],\n [0.343364000320435, 0.400596976280212],\n [0.396100014448166, 0.710216999053955],\n [0.187885001301765, 0.588537991046906],\n [0.430987000465393, 0.944064974784851],\n [0.318993002176285, 0.898285031318665],\n [0.266247987747192, 0.869701027870178],\n [0.500023007392883, 0.190576016902924],\n [0.499976992607117, 0.954452991485596],\n [0.366169989109039, 0.398822009563446],\n [0.393207013607025, 0.39553701877594],\n [0.410373002290726, 0.391080021858215],\n [0.194993004202843, 0.342101991176605],\n [0.388664990663528, 0.362284004688263],\n [0.365961998701096, 0.355970978736877],\n [0.343364000320435, 0.355356991291046],\n [0.318785011768341, 0.35834002494812],\n [0.301414996385574, 0.363156020641327],\n [0.058132998645306, 0.319076001644135],\n [0.301414996385574, 0.387449026107788],\n [0.499987989664078, 0.618434011936188],\n [0.415838003158569, 0.624195992946625],\n [0.445681989192963, 0.566076993942261],\n [0.465844005346298, 0.620640993118286],\n [0.49992299079895, 0.351523995399475],\n [0.288718998432159, 0.819945991039276],\n [0.335278987884521, 0.852819979190826],\n [0.440512001514435, 0.902418971061707],\n [0.128294005990028, 0.791940987110138],\n [0.408771991729736, 0.373893976211548],\n [0.455606997013092, 0.451801002025604],\n [0.499877005815506, 0.908990025520325],\n [0.375436991453171, 0.924192011356354],\n [0.11421000212431, 0.615022003650665],\n [0.448662012815475, 0.695277988910675],\n [0.4480200111866, 0.704632043838501],\n [0.447111994028091, 0.715808033943176],\n [0.444831997156143, 0.730794012546539],\n [0.430011987686157, 0.766808986663818],\n [0.406787008047104, 0.685672998428345],\n [0.400738000869751, 0.681069016456604],\n [0.392399996519089, 0.677703022956848],\n [0.367855995893478, 0.663918972015381],\n [0.247923001646996, 0.601333022117615],\n [0.452769994735718, 0.420849978923798],\n [0.43639200925827, 0.359887003898621],\n [0.416164010763168, 0.368713974952698],\n [0.413385987281799, 0.692366003990173],\n [0.228018000721931, 0.683571994304657],\n [0.468268007040024, 0.352671027183533],\n [0.411361992359161, 0.804327011108398],\n [0.499989002943039, 0.469825029373169],\n [0.479153990745544, 0.442654013633728],\n [0.499974012374878, 0.439637005329132],\n [0.432112008333206, 0.493588984012604],\n [0.499886006116867, 0.866917014122009],\n [0.49991300702095, 0.821729004383087],\n [0.456548988819122, 0.819200992584229],\n [0.344549000263214, 0.745438992977142],\n [0.37890899181366, 0.574010014533997],\n [0.374292999505997, 0.780184984207153],\n [0.319687992334366, 0.570737957954407],\n [0.357154995203018, 0.604269981384277],\n [0.295284003019333, 0.621580958366394],\n [0.447750002145767, 0.862477004528046],\n [0.410986006259918, 0.508723020553589],\n [0.31395098567009, 0.775308012962341],\n [0.354128003120422, 0.812552988529205],\n [0.324548006057739, 0.703992962837219],\n [0.189096003770828, 0.646299958229065],\n [0.279776990413666, 0.71465802192688],\n [0.1338230073452, 0.682700991630554],\n [0.336768001317978, 0.644733011722565],\n [0.429883986711502, 0.466521978378296],\n [0.455527991056442, 0.548622965812683],\n [0.437114000320435, 0.558896005153656],\n [0.467287987470627, 0.529924988746643],\n [0.414712011814117, 0.335219979286194],\n [0.37704598903656, 0.322777986526489],\n [0.344107985496521, 0.320150971412659],\n [0.312875986099243, 0.32233202457428],\n [0.283526003360748, 0.333190023899078],\n [0.241245999932289, 0.382785975933075],\n [0.102986000478268, 0.468762993812561],\n [0.267612010240555, 0.424560010433197],\n [0.297879010438919, 0.433175981044769],\n [0.333433985710144, 0.433878004550934],\n [0.366427004337311, 0.426115989685059],\n [0.396012008190155, 0.416696012020111],\n [0.420121014118195, 0.41022801399231],\n [0.007561000064015, 0.480777025222778],\n [0.432949006557465, 0.569517970085144],\n [0.458638995885849, 0.479089021682739],\n [0.473466008901596, 0.545744001865387],\n [0.476087987422943, 0.563830018043518],\n [0.468472003936768, 0.555056989192963],\n [0.433990985155106, 0.582361996173859],\n [0.483518004417419, 0.562983989715576],\n [0.482482999563217, 0.57784903049469],\n [0.42645001411438, 0.389798998832703],\n [0.438998997211456, 0.39649498462677],\n [0.450067013502121, 0.400434017181396],\n [0.289712011814117, 0.368252992630005],\n [0.276670008897781, 0.363372981548309],\n [0.517862021923065, 0.471948027610779],\n [0.710287988185883, 0.380764007568359],\n [0.526226997375488, 0.573909997940063],\n [0.895093023777008, 0.254140973091125],\n [0.634069979190826, 0.409575998783112],\n [0.661242008209229, 0.41302502155304],\n [0.688880026340485, 0.409460008144379],\n [0.725341975688934, 0.389131009578705],\n [0.606630027294159, 0.40370500087738],\n [0.654766023159027, 0.344011008739471],\n [0.629905998706818, 0.346076011657715],\n [0.680678009986877, 0.347265005111694],\n [0.702096998691559, 0.353591024875641],\n [0.75221198797226, 0.410804986953735],\n [0.602918028831482, 0.842862963676453],\n [0.719901978969574, 0.375599980354309],\n [0.893692970275879, 0.399959981441498],\n [0.790081977844238, 0.391354024410248],\n [0.643998026847839, 0.534487962722778],\n [0.528249025344849, 0.65040397644043],\n [0.525849997997284, 0.680191040039062],\n [0.560214996337891, 0.657229006290436],\n [0.585384011268616, 0.66654098033905],\n [0.549625992774963, 0.680860996246338],\n [0.57122802734375, 0.682691991329193],\n [0.624852001667023, 0.72809898853302],\n [0.513050019741058, 0.547281980514526],\n [0.51509702205658, 0.527251958847046],\n [0.742246985435486, 0.314507007598877],\n [0.598631024360657, 0.454979002475739],\n [0.570338010787964, 0.548575043678284],\n [0.578631997108459, 0.533622980117798],\n [0.723087012767792, 0.532054007053375],\n [0.516445994377136, 0.499638974666595],\n [0.662801027297974, 0.282917976379395],\n [0.70362401008606, 0.293271005153656],\n [0.830704987049103, 0.193813979625702],\n [0.552385985851288, 0.302568018436432],\n [0.607609987258911, 0.353887975215912],\n [0.645429015159607, 0.696707010269165],\n [0.932694971561432, 0.730105042457581],\n [0.557260990142822, 0.572826027870178],\n [0.542901992797852, 0.584792017936707],\n [0.6180260181427, 0.694710969924927],\n [0.607590973377228, 0.694203019142151],\n [0.722943007946014, 0.271963000297546],\n [0.577413976192474, 0.563166975975037],\n [0.614082992076874, 0.281386971473694],\n [0.616907000541687, 0.255886018276215],\n [0.668509006500244, 0.119913995265961],\n [0.770092010498047, 0.232020974159241],\n [0.635536015033722, 0.189248979091644],\n [0.77039098739624, 0.299556016921997],\n [0.826722025871277, 0.278755009174347],\n [0.527121007442474, 0.666198015213013],\n [0.553171992301941, 0.668527007102966],\n [0.577238023281097, 0.673889994621277],\n [0.554691970348358, 0.580065965652466],\n [0.611896991729736, 0.693961024284363],\n [0.59696102142334, 0.706539988517761],\n [0.596370995044708, 0.693953037261963],\n [0.539958000183105, 0.557139039039612],\n [0.568841993808746, 0.692366003990173],\n [0.547818005084991, 0.692366003990173],\n [0.52461302280426, 0.692366003990173],\n [0.534089982509613, 0.779141008853912],\n [0.527670979499817, 0.736225962638855],\n [0.526912987232208, 0.717857003211975],\n [0.526877999305725, 0.704625964164734],\n [0.526966989040375, 0.695277988910675],\n [0.572058022022247, 0.695277988910675],\n [0.573521018028259, 0.703539967536926],\n [0.57683801651001, 0.711845993995667],\n [0.581691026687622, 0.720062971115112],\n [0.609944999217987, 0.639909982681274],\n [0.986046016216278, 0.560034036636353],\n [0.5867999792099, 0.69539999961853],\n [0.590372025966644, 0.701822996139526],\n [0.531915009021759, 0.601536989212036],\n [0.577268004417419, 0.585934996604919],\n [0.536915004253387, 0.593786001205444],\n [0.627542972564697, 0.473352015018463],\n [0.665585994720459, 0.495950996875763],\n [0.588353991508484, 0.546862006187439],\n [0.757824003696442, 0.14767599105835],\n [0.709249973297119, 0.201507985591888],\n [0.672684013843536, 0.256581008434296],\n [0.600408971309662, 0.74900496006012],\n [0.55826598405838, 0.261672019958496],\n [0.570303976535797, 0.187870979309082],\n [0.588165998458862, 0.109044015407562],\n [0.711045026779175, 0.398952007293701],\n [0.781069993972778, 0.435405015945435],\n [0.587247014045715, 0.398931980133057],\n [0.742869973182678, 0.355445981025696],\n [0.572156012058258, 0.437651991844177],\n [0.55186802148819, 0.536570012569427],\n [0.821442008018494, 0.457556009292603],\n [0.752701997756958, 0.457181990146637],\n [0.71375697851181, 0.467626988887787],\n [0.66711300611496, 0.460672974586487],\n [0.631101012229919, 0.447153985500336],\n [0.6008620262146, 0.432473003864288],\n [0.523481011390686, 0.405627012252808],\n [0.810747981071472, 0.523926019668579],\n [0.771045982837677, 0.348959028720856],\n [0.509127020835876, 0.562718033790588],\n [0.595292985439301, 0.485023975372314],\n [0.980530977249146, 0.401564002037048],\n [0.573499977588654, 0.420000016689301],\n [0.602994978427887, 0.548687994480133],\n [0.733529984951019, 0.376977026462555],\n [0.560611009597778, 0.519016981124878],\n [0.967685997486115, 0.644356966018677],\n [0.580985009670258, 0.387160003185272],\n [0.537728011608124, 0.505385041236877],\n [0.760966002941132, 0.779752969741821],\n [0.801778972148895, 0.831938028335571],\n [0.892440974712372, 0.54076099395752],\n [0.816350996494293, 0.740260004997253],\n [0.865594983100891, 0.333687007427216],\n [0.614073991775513, 0.883246004581451],\n [0.508952975273132, 0.579437971115112],\n [0.617941975593567, 0.508316040039062],\n [0.825608015060425, 0.397674977779388],\n [0.681214988231659, 0.39623498916626],\n [0.656635999679565, 0.400596976280212],\n [0.603900015354156, 0.710216999053955],\n [0.81208598613739, 0.588539004325867],\n [0.56801301240921, 0.944564998149872],\n [0.681007981300354, 0.898285031318665],\n [0.733752012252808, 0.869701027870178],\n [0.633830010890961, 0.398822009563446],\n [0.606792986392975, 0.39553701877594],\n [0.589659988880157, 0.391062021255493],\n [0.805015981197357, 0.342108011245728],\n [0.611334979534149, 0.362284004688263],\n [0.634037971496582, 0.355970978736877],\n [0.656635999679565, 0.355356991291046],\n [0.681214988231659, 0.35834002494812],\n [0.698584973812103, 0.363156020641327],\n [0.941866993904114, 0.319076001644135],\n [0.698584973812103, 0.387449026107788],\n [0.584177017211914, 0.624107003211975],\n [0.554318010807037, 0.566076993942261],\n [0.534153997898102, 0.62064003944397],\n [0.711217999458313, 0.819975018501282],\n [0.664629995822906, 0.852871000766754],\n [0.559099972248077, 0.902631998062134],\n [0.871706008911133, 0.791940987110138],\n [0.591234028339386, 0.373893976211548],\n [0.544341027736664, 0.451583981513977],\n [0.624562978744507, 0.924192011356354],\n [0.88577002286911, 0.615028977394104],\n [0.551338016986847, 0.695277988910675],\n [0.551980018615723, 0.704632043838501],\n [0.552887976169586, 0.715808033943176],\n [0.555167973041534, 0.730794012546539],\n [0.569944024085999, 0.767035007476807],\n [0.593203008174896, 0.685675978660583],\n [0.599261999130249, 0.681069016456604],\n [0.607599973678589, 0.677703022956848],\n [0.631937980651855, 0.663500010967255],\n [0.752032995223999, 0.601315021514893],\n [0.547226011753082, 0.420395016670227],\n [0.563543975353241, 0.359827995300293],\n [0.583841025829315, 0.368713974952698],\n [0.586614012718201, 0.692366003990173],\n [0.771915018558502, 0.683578014373779],\n [0.531597018241882, 0.352482974529266],\n [0.588370978832245, 0.804440975189209],\n [0.52079701423645, 0.442565023899078],\n [0.567984998226166, 0.493479013442993],\n [0.543282985687256, 0.819254994392395],\n [0.655317008495331, 0.745514988899231],\n [0.621008992195129, 0.574018001556396],\n [0.625559985637665, 0.78031200170517],\n [0.680198013782501, 0.570719003677368],\n [0.64276397228241, 0.604337990283966],\n [0.704662978649139, 0.621529996395111],\n [0.552012026309967, 0.862591981887817],\n [0.589071989059448, 0.508637011051178],\n [0.685944974422455, 0.775357007980347],\n [0.645735025405884, 0.812640011310577],\n [0.675342977046967, 0.703978002071381],\n [0.810858011245728, 0.646304965019226],\n [0.72012197971344, 0.714666962623596],\n [0.866151988506317, 0.682704985141754],\n [0.663187026977539, 0.644596993923187],\n [0.570082008838654, 0.466325998306274],\n [0.544561982154846, 0.548375964164734],\n [0.562758982181549, 0.558784961700439],\n [0.531987011432648, 0.530140042304993],\n [0.585271000862122, 0.335177004337311],\n [0.622952997684479, 0.32277899980545],\n [0.655896008014679, 0.320163011550903],\n [0.687132000923157, 0.322345972061157],\n [0.716481983661652, 0.333200991153717],\n [0.758756995201111, 0.382786989212036],\n [0.897013008594513, 0.468769013881683],\n [0.732392013072968, 0.424547016620636],\n [0.70211398601532, 0.433162987232208],\n [0.66652500629425, 0.433866024017334],\n [0.633504986763, 0.426087975502014],\n [0.603875994682312, 0.416586995124817],\n [0.579657971858978, 0.409945011138916],\n [0.992439985275269, 0.480777025222778],\n [0.567192018032074, 0.569419980049133],\n [0.54136598110199, 0.478899002075195],\n [0.526564002037048, 0.546118021011353],\n [0.523913025856018, 0.563830018043518],\n [0.531529009342194, 0.555056989192963],\n [0.566035985946655, 0.582329034805298],\n [0.51631098985672, 0.563053965568542],\n [0.5174720287323, 0.577877044677734],\n [0.573594987392426, 0.389806985855103],\n [0.560697972774506, 0.395331978797913],\n [0.549755990505219, 0.399751007556915],\n [0.710287988185883, 0.368252992630005],\n [0.723330020904541, 0.363372981548309],\n];\n\nconst TRI468 = [\n 127, 34, 139, 11, 0, 37, 232, 231, 120, 72, 37, 39, 128, 121, 47, 232, 121, 128, 104, 69, 67, 175, 171, 148, 157, 154, 155, 118, 50, 101, 73, 39, 40, 9,\n 151, 108, 48, 115, 131, 194, 204, 211, 74, 40, 185, 80, 42, 183, 40, 92, 186, 230, 229, 118, 202, 212, 214, 83, 18, 17, 76, 61, 146, 160, 29, 30, 56,\n 157, 173, 106, 204, 194, 135, 214, 192, 203, 165, 98, 21, 71, 68, 51, 45, 4, 144, 24, 23, 77, 146, 91, 205, 50, 187, 201, 200, 18, 91, 106, 182, 90, 91,\n 181, 85, 84, 17, 206, 203, 36, 148, 171, 140, 92, 40, 39, 193, 189, 244, 159, 158, 28, 247, 246, 161, 236, 3, 196, 54, 68, 104, 193, 168, 8, 117,\n 228, 31, 189, 193, 55, 98, 97, 99, 126, 47, 100, 166, 79, 218, 155, 154, 26, 209, 49, 131, 135, 136, 150, 47, 126, 217, 223, 52, 53, 45, 51, 134, 211,\n 170, 140, 67, 69, 108, 43, 106, 91, 230, 119, 120, 226, 130, 247, 63, 53, 52, 238, 20, 242, 46, 70, 156, 78, 62, 96, 46, 53, 63, 143, 34, 227, 173,\n 155, 133, 123, 117, 111, 44, 125, 19, 236, 134, 51, 216, 206, 205, 154, 153, 22, 39, 37, 167, 200, 201, 208, 36, 142, 100, 57, 212, 202, 20, 60, 99, 28,\n 158, 157, 35, 226, 113, 160, 159, 27, 204, 202, 210, 113, 225, 46, 43, 202, 204, 62, 76, 77, 137, 123, 116, 41, 38, 72, 203, 129, 142, 64, 98, 240, 49,\n 102, 64, 41, 73, 74, 212, 216, 207, 42, 74, 184, 169, 170, 211, 170, 149, 176, 105, 66, 69, 122, 6, 168, 123, 147, 187, 96, 77, 90, 65, 55, 107, 89,\n 90, 180, 101, 100, 120, 63, 105, 104, 93, 137, 227, 15, 86, 85, 129, 102, 49, 14, 87, 86, 55, 8, 9, 100, 47, 121, 145, 23, 22, 88, 89, 179, 6, 122,\n 196, 88, 95, 96, 138, 172, 136, 215, 58, 172, 115, 48, 219, 42, 80, 81, 195, 3, 51, 43, 146, 61, 171, 175, 199, 81, 82, 38, 53, 46, 225, 144, 163, 110,\n 246, 33, 7, 52, 65, 66, 229, 228, 117, 34, 127, 234, 107, 108, 69, 109, 108, 151, 48, 64, 235, 62, 78, 191, 129, 209, 126, 111, 35, 143, 163, 161, 246,\n 117, 123, 50, 222, 65, 52, 19, 125, 141, 221, 55, 65, 3, 195, 197, 25, 7, 33, 220, 237, 44, 70, 71, 139, 122, 193, 245, 247, 130, 33, 71, 21, 162,\n 153, 158, 159, 170, 169, 150, 188, 174, 196, 216, 186, 92, 144, 160, 161, 2, 97, 167, 141, 125, 241, 164, 167, 37, 72, 38, 12, 145, 159, 160, 38, 82, 13,\n 63, 68, 71, 226, 35, 111, 158, 153, 154, 101, 50, 205, 206, 92, 165, 209, 198, 217, 165, 167, 97, 220, 115, 218, 133, 112, 243, 239, 238, 241, 214,\n 135, 169, 190, 173, 133, 171, 208, 32, 125, 44, 237, 86, 87, 178, 85, 86, 179, 84, 85, 180, 83, 84, 181, 201, 83, 182, 137, 93, 132, 76, 62, 183, 61,\n 76, 184, 57, 61, 185, 212, 57, 186, 214, 207, 187, 34, 143, 156, 79, 239, 237, 123, 137, 177, 44, 1, 4, 201, 194, 32, 64, 102, 129, 213, 215, 138, 59,\n 166, 219, 242, 99, 97, 2, 94, 141, 75, 59, 235, 24, 110, 228, 25, 130, 226, 23, 24, 229, 22, 23, 230, 26, 22, 231, 112, 26, 232, 189, 190, 243, 221, 56,\n 190, 28, 56, 221, 27, 28, 222, 29, 27, 223, 30, 29, 224, 247, 30, 225, 238, 79, 20, 166, 59, 75, 60, 75, 240, 147, 177, 215, 20, 79, 166, 187, 147, 213,\n 112, 233, 244, 233, 128, 245, 128, 114, 188, 114, 217, 174, 131, 115, 220, 217, 198, 236, 198, 131, 134, 177, 132, 58, 143, 35, 124, 110, 163, 7, 228,\n 110, 25, 356, 389, 368, 11, 302, 267, 452, 350, 349, 302, 303, 269, 357, 343, 277, 452, 453, 357, 333, 332, 297, 175, 152, 377, 384, 398, 382, 347,\n 348, 330, 303, 304, 270, 9, 336, 337, 278, 279, 360, 418, 262, 431, 304, 408, 409, 310, 415, 407, 270, 409, 410, 450, 348, 347, 422, 430, 434, 313,\n 314, 17, 306, 307, 375, 387, 388, 260, 286, 414, 398, 335, 406, 418, 364, 367, 416, 423, 358, 327, 251, 284, 298, 281, 5, 4, 373, 374, 253, 307, 320,\n 321, 425, 427, 411, 421, 313, 18, 321, 405, 406, 320, 404, 405, 315, 16, 17, 426, 425, 266, 377, 400, 369, 322, 391, 269, 417, 465, 464, 386, 257, 258,\n 466, 260, 388, 456, 399, 419, 284, 332, 333, 417, 285, 8, 346, 340, 261, 413, 441, 285, 327, 460, 328, 355, 371, 329, 392, 439, 438, 382, 341, 256,\n 429, 420, 360, 364, 394, 379, 277, 343, 437, 443, 444, 283, 275, 440, 363, 431, 262, 369, 297, 338, 337, 273, 375, 321, 450, 451, 349, 446, 342, 467,\n 293, 334, 282, 458, 461, 462, 276, 353, 383, 308, 324, 325, 276, 300, 293, 372, 345, 447, 382, 398, 362, 352, 345, 340, 274, 1, 19, 456, 248, 281, 436,\n 427, 425, 381, 256, 252, 269, 391, 393, 200, 199, 428, 266, 330, 329, 287, 273, 422, 250, 462, 328, 258, 286, 384, 265, 353, 342, 387, 259, 257, 424,\n 431, 430, 342, 353, 276, 273, 335, 424, 292, 325, 307, 366, 447, 345, 271, 303, 302, 423, 266, 371, 294, 455, 460, 279, 278, 294, 271, 272, 304, 432,\n 434, 427, 272, 407, 408, 394, 430, 431, 395, 369, 400, 334, 333, 299, 351, 417, 168, 352, 280, 411, 325, 319, 320, 295, 296, 336, 319, 403, 404, 330,\n 348, 349, 293, 298, 333, 323, 454, 447, 15, 16, 315, 358, 429, 279, 14, 15, 316, 285, 336, 9, 329, 349, 350, 374, 380, 252, 318, 402, 403, 6, 197, 419,\n 318, 319, 325, 367, 364, 365, 435, 367, 397, 344, 438, 439, 272, 271, 311, 195, 5, 281, 273, 287, 291, 396, 428, 199, 311, 271, 268, 283, 444, 445,\n 373, 254, 339, 263, 466, 249, 282, 334, 296, 449, 347, 346, 264, 447, 454, 336, 296, 299, 338, 10, 151, 278, 439, 455, 292, 407, 415, 358, 371, 355,\n 340, 345, 372, 390, 249, 466, 346, 347, 280, 442, 443, 282, 19, 94, 370, 441, 442, 295, 248, 419, 197, 263, 255, 359, 440, 275, 274, 300, 383, 368,\n 351, 412, 465, 263, 467, 466, 301, 368, 389, 380, 374, 386, 395, 378, 379, 412, 351, 419, 436, 426, 322, 373, 390, 388, 2, 164, 393, 370, 462, 461,\n 164, 0, 267, 302, 11, 12, 374, 373, 387, 268, 12, 13, 293, 300, 301, 446, 261, 340, 385, 384, 381, 330, 266, 425, 426, 423, 391, 429, 355, 437, 391,\n 327, 326, 440, 457, 438, 341, 382, 362, 459, 457, 461, 434, 430, 394, 414, 463, 362, 396, 369, 262, 354, 461, 457, 316, 403, 402, 315, 404, 403, 314,\n 405, 404, 313, 406, 405, 421, 418, 406, 366, 401, 361, 306, 408, 407, 291, 409, 408, 287, 410, 409, 432, 436, 410, 434, 416, 411, 264, 368, 383, 309,\n 438, 457, 352, 376, 401, 274, 275, 4, 421, 428, 262, 294, 327, 358, 433, 416, 367, 289, 455, 439, 462, 370, 326, 2, 326, 370, 305, 460, 455, 254,\n 449, 448, 255, 261, 446, 253, 450, 449, 252, 451, 450, 256, 452, 451, 341, 453, 452, 413, 464, 463, 441, 413, 414, 258, 442, 441, 257, 443, 442, 259,\n 444, 443, 260, 445, 444, 467, 342, 445, 459, 458, 250, 289, 392, 290, 290, 328, 460, 376, 433, 435, 250, 290, 392, 411, 416, 433, 341, 463, 464, 453,\n 464, 465, 357, 465, 412, 343, 412, 399, 360, 363, 440, 437, 399, 456, 420, 456, 363, 401, 435, 288, 372, 383, 353, 339, 255, 249, 448, 261, 255, 133,\n 243, 190, 133, 155, 112, 33, 246, 247, 33, 130, 25, 398, 384, 286, 362, 398, 414, 362, 463, 341, 263, 359, 467, 263, 249, 255, 466, 467, 260, 75, 60,\n 166, 238, 239, 79, 162, 127, 139, 72, 11, 37, 121, 232, 120, 73, 72, 39, 114, 128, 47, 233, 232, 128, 103, 104, 67, 152, 175, 148, 173, 157, 155,\n 119, 118, 101, 74, 73, 40, 107, 9, 108, 49, 48, 131, 32, 194, 211, 184, 74, 185, 191, 80, 183, 185, 40, 186, 119, 230, 118, 210, 202, 214, 84, 83, 17,\n 77, 76, 146, 161, 160, 30, 190, 56, 173, 182, 106, 194, 138, 135, 192, 129, 203, 98, 54, 21, 68, 5, 51, 4, 145, 144, 23, 90, 77, 91, 207, 205, 187, 83,\n 201, 18, 181, 91, 182, 180, 90, 181, 16, 85, 17, 205, 206, 36, 176, 148, 140, 165, 92, 39, 245, 193, 244, 27, 159, 28, 30, 247, 161, 174, 236, 196,\n 103, 54, 104, 55, 193, 8, 111, 117, 31, 221, 189, 55, 240, 98, 99, 142, 126, 100, 219, 166, 218, 112, 155, 26, 198, 209, 131, 169, 135, 150, 114, 47,\n 217, 224, 223, 53, 220, 45, 134, 32, 211, 140, 109, 67, 108, 146, 43, 91, 231, 230, 120, 113, 226, 247, 105, 63, 52, 241, 238, 242, 124, 46, 156, 95,\n 78, 96, 70, 46, 63, 116, 143, 227, 116, 123, 111, 1, 44, 19, 3, 236, 51, 207, 216, 205, 26, 154, 22, 165, 39, 167, 199, 200, 208, 101, 36, 100, 43,\n 57, 202, 242, 20, 99, 56, 28, 157, 124, 35, 113, 29, 160, 27, 211, 204, 210, 124, 113, 46, 106, 43, 204, 96, 62, 77, 227, 137, 116, 73, 41, 72, 36, 203,\n 142, 235, 64, 240, 48, 49, 64, 42, 41, 74, 214, 212, 207, 183, 42, 184, 210, 169, 211, 140, 170, 176, 104, 105, 69, 193, 122, 168, 50, 123, 187, 89, 96,\n 90, 66, 65, 107, 179, 89, 180, 119, 101, 120, 68, 63, 104, 234, 93, 227, 16, 15, 85, 209, 129, 49, 15, 14, 86, 107, 55, 9, 120, 100, 121, 153, 145, 22,\n 178, 88, 179, 197, 6, 196, 89, 88, 96, 135, 138, 136, 138, 215, 172, 218, 115, 219, 41, 42, 81, 5, 195, 51, 57, 43, 61, 208, 171, 199, 41, 81, 38,\n 224, 53, 225, 24, 144, 110, 105, 52, 66, 118, 229, 117, 227, 34, 234, 66, 107, 69, 10, 109, 151, 219, 48, 235, 183, 62, 191, 142, 129, 126, 116, 111,\n 143, 7, 163, 246, 118, 117, 50, 223, 222, 52, 94, 19, 141, 222, 221, 65, 196, 3, 197, 45, 220, 44, 156, 70, 139, 188, 122, 245, 139, 71, 162, 145,\n 153, 159, 149, 170, 150, 122, 188, 196, 206, 216, 92, 163, 144, 161, 164, 2, 167, 242, 141, 241, 0, 164, 37, 11, 72, 12, 144, 145, 160, 12, 38, 13, 70,\n 63, 71, 31, 226, 111, 157, 158, 154, 36, 101, 205, 203, 206, 165, 126, 209, 217, 98, 165, 97, 237, 220, 218, 237, 239, 241, 210, 214, 169, 140, 171, 32,\n 241, 125, 237, 179, 86, 178, 180, 85, 179, 181, 84, 180, 182, 83, 181, 194, 201, 182, 177, 137, 132, 184, 76, 183, 185, 61, 184, 186, 57, 185, 216, 212,\n 186, 192, 214, 187, 139, 34, 156, 218, 79, 237, 147, 123, 177, 45, 44, 4, 208, 201, 32, 98, 64, 129, 192, 213, 138, 235, 59, 219, 141, 242, 97, 97, 2,\n 141, 240, 75, 235, 229, 24, 228, 31, 25, 226, 230, 23, 229, 231, 22, 230, 232, 26, 231, 233, 112, 232, 244, 189, 243, 189, 221, 190, 222, 28, 221,\n 223, 27, 222, 224, 29, 223, 225, 30, 224, 113, 247, 225, 99, 60, 240, 213, 147, 215, 60, 20, 166, 192, 187, 213, 243, 112, 244, 244, 233, 245, 245,\n 128, 188, 188, 114, 174, 134, 131, 220, 174, 217, 236, 236, 198, 134, 215, 177, 58, 156, 143, 124, 25, 110, 7, 31, 228, 25, 264, 356, 368, 0, 11, 267,\n 451, 452, 349, 267, 302, 269, 350, 357, 277, 350, 452, 357, 299, 333, 297, 396, 175, 377, 381, 384, 382, 280, 347, 330, 269, 303, 270, 151, 9, 337,\n 344, 278, 360, 424, 418, 431, 270, 304, 409, 272, 310, 407, 322, 270, 410, 449, 450, 347, 432, 422, 434, 18, 313, 17, 291, 306, 375, 259, 387, 260,\n 424, 335, 418, 434, 364, 416, 391, 423, 327, 301, 251, 298, 275, 281, 4, 254, 373, 253, 375, 307, 321, 280, 425, 411, 200, 421, 18, 335, 321, 406,\n 321, 320, 405, 314, 315, 17, 423, 426, 266, 396, 377, 369, 270, 322, 269, 413, 417, 464, 385, 386, 258, 248, 456, 419, 298, 284, 333, 168, 417, 8,\n 448, 346, 261, 417, 413, 285, 326, 327, 328, 277, 355, 329, 309, 392, 438, 381, 382, 256, 279, 429, 360, 365, 364, 379, 355, 277, 437, 282, 443, 283,\n 281, 275, 363, 395, 431, 369, 299, 297, 337, 335, 273, 321, 348, 450, 349, 359, 446, 467, 283, 293, 282, 250, 458, 462, 300, 276, 383, 292, 308, 325,\n 283, 276, 293, 264, 372, 447, 346, 352, 340, 354, 274, 19, 363, 456, 281, 426, 436, 425, 380, 381, 252, 267, 269, 393, 421, 200, 428, 371, 266, 329,\n 432, 287, 422, 290, 250, 328, 385, 258, 384, 446, 265, 342, 386, 387, 257, 422, 424, 430, 445, 342, 276, 422, 273, 424, 306, 292, 307, 352, 366, 345,\n 268, 271, 302, 358, 423, 371, 327, 294, 460, 331, 279, 294, 303, 271, 304, 436, 432, 427, 304, 272, 408, 395, 394, 431, 378, 395, 400, 296, 334, 299,\n 6, 351, 168, 376, 352, 411, 307, 325, 320, 285, 295, 336, 320, 319, 404, 329, 330, 349, 334, 293, 333, 366, 323, 447, 316, 15, 315, 331, 358, 279,\n 317, 14, 316, 8, 285, 9, 277, 329, 350, 253, 374, 252, 319, 318, 403, 351, 6, 419, 324, 318, 325, 397, 367, 365, 288, 435, 397, 278, 344, 439, 310,\n 272, 311, 248, 195, 281, 375, 273, 291, 175, 396, 199, 312, 311, 268, 276, 283, 445, 390, 373, 339, 295, 282, 296, 448, 449, 346, 356, 264, 454, 337,\n 336, 299, 337, 338, 151, 294, 278, 455, 308, 292, 415, 429, 358, 355, 265, 340, 372, 388, 390, 466, 352, 346, 280, 295, 442, 282, 354, 19, 370, 285,\n 441, 295, 195, 248, 197, 457, 440, 274, 301, 300, 368, 417, 351, 465, 251, 301, 389, 385, 380, 386, 394, 395, 379, 399, 412, 419, 410, 436, 322, 387,\n 373, 388, 326, 2, 393, 354, 370, 461, 393, 164, 267, 268, 302, 12, 386, 374, 387, 312, 268, 13, 298, 293, 301, 265, 446, 340, 380, 385, 381, 280, 330,\n 425, 322, 426, 391, 420, 429, 437, 393, 391, 326, 344, 440, 438, 458, 459, 461, 364, 434, 394, 428, 396, 262, 274, 354, 457, 317, 316, 402, 316, 315,\n 403, 315, 314, 404, 314, 313, 405, 313, 421, 406, 323, 366, 361, 292, 306, 407, 306, 291, 408, 291, 287, 409, 287, 432, 410, 427, 434, 411, 372, 264,\n 383, 459, 309, 457, 366, 352, 401, 1, 274, 4, 418, 421, 262, 331, 294, 358, 435, 433, 367, 392, 289, 439, 328, 462, 326, 94, 2, 370, 289, 305, 455, 339,\n 254, 448, 359, 255, 446, 254, 253, 449, 253, 252, 450, 252, 256, 451, 256, 341, 452, 414, 413, 463, 286, 441, 414, 286, 258, 441, 258, 257, 442, 257,\n 259, 443, 259, 260, 444, 260, 467, 445, 309, 459, 250, 305, 289, 290, 305, 290, 460, 401, 376, 435, 309, 250, 392, 376, 411, 433, 453, 341, 464, 357,\n 453, 465, 343, 357, 412, 437, 343, 399, 344, 360, 440, 420, 437, 456, 360, 420, 363, 361, 401, 288, 265, 372, 353, 390, 339, 249, 339, 448, 255];\n\nconst TRI68 = [0, 1, 36, 0, 36, 17, 1, 2, 41, 1, 41, 36, 2, 3, 31, 2, 31, 41, 3, 4, 48, 3, 48, 31, 4, 5, 48, 5, 6, 48, 6, 7, 59, 6, 59, 48, 7, 8, 58, 7, 58, 59,\n 8, 9, 56, 8, 56, 57, 8, 57, 58, 9, 10, 55, 9, 55, 56, 10, 11, 54, 10, 54, 55, 11, 12, 54, 12, 13, 54, 13, 14, 35, 13, 35, 54, 14, 15, 46, 14, 46, 35, 15, 16,\n 45, 15, 45, 46, 16, 26, 45, 17, 36, 18, 18, 37, 19, 18, 36, 37, 19, 38, 20, 19, 37, 38, 20, 39, 21, 20, 38, 39, 21, 39, 27, 22, 42, 23, 22, 27, 42, 23, 43, 24,\n 23, 42, 43, 24, 44, 25, 24, 43, 44, 25, 45, 26, 25, 44, 45, 27, 39, 28, 27, 28, 42, 28, 39, 29, 28, 29, 42, 29, 31, 30, 29, 30, 35, 29, 40, 31, 29, 35, 47, 29,\n 39, 40, 29, 47, 42, 30, 31, 32, 30, 32, 33, 30, 33, 34, 30, 34, 35, 31, 50, 32, 31, 40, 41, 31, 48, 49, 31, 49, 50, 32, 51, 33, 32, 50, 51, 33, 51, 34, 34, 52,\n 35, 34, 51, 52, 35, 46, 47, 35, 52, 53, 35, 53, 54, 36, 41, 37, 37, 40, 38, 37, 41, 40, 38, 40, 39, 42, 47, 43, 43, 47, 44, 44, 46, 45, 44, 47, 46, 48, 60, 49,\n 48, 59, 60, 49, 61, 50, 49, 60, 61, 50, 62, 51, 50, 61, 62, 51, 62, 52, 52, 63, 53, 52, 62, 63, 53, 64, 54, 53, 63, 64, 54, 64, 55, 55, 65, 56, 55, 64, 65, 56,\n 66, 57, 56, 65, 66, 57, 66, 58, 58, 67, 59, 58, 66, 67, 59, 67, 60, 60, 67, 61, 61, 66, 62, 61, 67, 66, 62, 66, 63, 63, 65, 64, 63, 66, 65, 21, 27, 22];\nconst TRI33 = [\n /* eyes */ 0, 8, 7, 7, 8, 1, 2, 10, 9, 9, 10, 3,\n /* brows */ 17, 0, 18, 18, 0, 7, 18, 7, 19, 19, 7, 1, 19, 1, 11, 19, 11, 20, 21, 3, 22, 21, 9, 3, 20, 9, 21, 20, 2, 9, 20, 11, 2,\n /* 4head */ 23, 17, 18, 25, 21, 22, 24, 19, 20, 24, 18, 19, 24, 20, 21, 24, 23, 18, 24, 21, 25,\n /* nose */ 11, 12, 4, 11, 4, 13, 1, 12, 11, 11, 13, 2, 12, 14, 4, 4, 14, 13,\n /* up-lip */ 14, 5, 15, 14, 15, 6, 12, 5, 14, 14, 6, 13,\n /* cheeks */ 8, 12, 1, 2, 13, 10, 8, 26, 12, 10, 13, 27, 26, 5, 12, 13, 6, 27, 0, 26, 8, 10, 27, 3,\n /* chin */ 5, 32, 16, 16, 32, 6, 5, 30, 32, 6, 32, 31,\n /* cont */ 26, 30, 5, 27, 6, 31, 0, 28, 26, 3, 27, 29, 17, 28, 0, 3, 29, 22, 23, 28, 17, 22, 29, 25, 28, 30, 26, 27, 31, 29,\n];\nconst TRI7 = [0, 4, 1, 2, 4, 3, 4, 5, 6];\n\nconst VTX68 = [\n /* cont */ 127, 234, 132, 58, 172, 150, 149, 148, 152, 377, 378, 379, 397, 288, 361, 454, 356,\n /* brows */ 70, 63, 105, 66, 107, 336, 296, 334, 293, 300,\n /* nose */ 168, 6, 195, 4, 98, 97, 2, 326, 327,\n /* eyes */ 33, 160, 158, 133, 153, 144, 362, 385, 387, 263, 373, 380,\n /* lip */ 57, 40, 37, 0, 267, 270, 287, 321, 314, 17, 84, 91,\n /* mouth */ 78, 81, 13, 311, 308, 402, 14, 178,\n];\nconst VTX33 = [33, 133, 362, 263, 1, 62, 308, 159, 145, 386, 374, 6, 102, 331, 2, 13, 14, 70, 105, 107, 336, 334, 300, 54, 10, 284, 50, 280, 234, 454, 58, 288, 152];\nconst VTX7 = [33, 133, 362, 263, 1, 78, 308];\n\nexports.MESH_ANNOTATIONS = MESH_ANNOTATIONS;\nexports.MESH_TO_IRIS_INDICES_MAP = MESH_TO_IRIS_INDICES_MAP;\n\nexports.TRI468 = TRI468;\nexports.TRI68 = TRI68;\nexports.TRI33 = TRI33;\nexports.TRI7 = TRI7;\n\nexports.UV468 = UV468;\nexports.UV68 = VTX68.map((x) => UV468[x]);\nexports.UV33 = VTX33.map((x) => UV468[x]);\nexports.UV7 = VTX7.map((x) => UV468[x]);\n", "/* eslint-disable class-methods-use-this */\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as bounding from './box';\nimport * as util from './util';\nimport * as coords from './coords.js';\n\nconst LANDMARKS_COUNT = 468;\nconst MESH_MOUTH_INDEX = 13;\nconst MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [MESH_MOUTH_INDEX, coords.MESH_ANNOTATIONS['midwayBetweenEyes'][0]];\nconst BLAZEFACE_MOUTH_INDEX = 3;\nconst BLAZEFACE_NOSE_INDEX = 2;\nconst BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES = [BLAZEFACE_MOUTH_INDEX, BLAZEFACE_NOSE_INDEX];\nconst LEFT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['leftEyeLower0'];\nconst LEFT_EYE_BOUNDS = [LEFT_EYE_OUTLINE[0], LEFT_EYE_OUTLINE[LEFT_EYE_OUTLINE.length - 1]];\nconst RIGHT_EYE_OUTLINE = coords.MESH_ANNOTATIONS['rightEyeLower0'];\nconst RIGHT_EYE_BOUNDS = [RIGHT_EYE_OUTLINE[0], RIGHT_EYE_OUTLINE[RIGHT_EYE_OUTLINE.length - 1]];\nconst IRIS_UPPER_CENTER_INDEX = 3;\nconst IRIS_LOWER_CENTER_INDEX = 4;\nconst IRIS_IRIS_INDEX = 71;\nconst IRIS_NUM_COORDINATES = 76;\n\n// Replace the raw coordinates returned by facemesh with refined iris model coordinates. Update the z coordinate to be an average of the original and the new. This produces the best visual effect.\nfunction replaceRawCoordinates(rawCoords, newCoords, prefix, keys) {\n for (let i = 0; i < coords.MESH_TO_IRIS_INDICES_MAP.length; i++) {\n const { key, indices } = coords.MESH_TO_IRIS_INDICES_MAP[i];\n const originalIndices = coords.MESH_ANNOTATIONS[`${prefix}${key}`];\n const shouldReplaceAllKeys = keys == null;\n if (shouldReplaceAllKeys || keys.includes(key)) {\n for (let j = 0; j < indices.length; j++) {\n const index = indices[j];\n rawCoords[originalIndices[j]] = [\n newCoords[index][0], newCoords[index][1],\n (newCoords[index][2] + rawCoords[originalIndices[j]][2]) / 2,\n ];\n }\n }\n }\n}\n// The Pipeline coordinates between the bounding box and skeleton models.\nclass Pipeline {\n constructor(boundingBoxDetector, meshDetector, irisModel, config) {\n // An array of facial bounding boxes.\n this.storedBoxes = [];\n this.runsWithoutFaceDetector = 0;\n this.boundingBoxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.irisModel = irisModel;\n this.meshWidth = config.face.mesh.inputSize;\n this.meshHeight = config.face.mesh.inputSize;\n this.irisSize = config.face.iris.inputSize;\n this.irisEnlarge = 2.3;\n this.skipped = 1000;\n this.detectedFaces = 0;\n }\n\n transformRawCoords(rawCoords, box, angle, rotationMatrix) {\n const boxSize = bounding.getBoxSize({ startPoint: box.startPoint, endPoint: box.endPoint });\n const scaleFactor = [boxSize[0] / this.meshWidth, boxSize[1] / this.meshHeight];\n const coordsScaled = rawCoords.map((coord) => ([\n scaleFactor[0] * (coord[0] - this.meshWidth / 2),\n scaleFactor[1] * (coord[1] - this.meshHeight / 2), coord[2],\n ]));\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => ([...util.rotatePoint(coord, coordsRotationMatrix), coord[2]]));\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint }), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => ([\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1], coord[2],\n ]));\n }\n\n getLeftToRightEyeDepthDifference(rawCoords) {\n const leftEyeZ = rawCoords[LEFT_EYE_BOUNDS[0]][2];\n const rightEyeZ = rawCoords[RIGHT_EYE_BOUNDS[0]][2];\n return leftEyeZ - rightEyeZ;\n }\n\n // Returns a box describing a cropped region around the eye fit for passing to the iris model.\n getEyeBox(rawCoords, face, eyeInnerCornerIndex, eyeOuterCornerIndex, flip = false) {\n const box = bounding.squarifyBox(bounding.enlargeBox(this.calculateLandmarksBoundingBox([rawCoords[eyeInnerCornerIndex], rawCoords[eyeOuterCornerIndex]]), this.irisEnlarge));\n const boxSize = bounding.getBoxSize(box);\n let crop = tf.image.cropAndResize(face, [[\n box.startPoint[1] / this.meshHeight,\n box.startPoint[0] / this.meshWidth, box.endPoint[1] / this.meshHeight,\n box.endPoint[0] / this.meshWidth,\n ]], [0], [this.irisSize, this.irisSize]);\n if (flip) {\n crop = tf.image.flipLeftRight(crop);\n }\n return { box, boxSize, crop };\n }\n\n // Given a cropped image of an eye, returns the coordinates of the contours surrounding the eye and the iris.\n getEyeCoords(eyeData, eyeBox, eyeBoxSize, flip = false) {\n const eyeRawCoords = [];\n for (let i = 0; i < IRIS_NUM_COORDINATES; i++) {\n const x = eyeData[i * 3];\n const y = eyeData[i * 3 + 1];\n const z = eyeData[i * 3 + 2];\n eyeRawCoords.push([\n (flip\n ? (1 - (x / this.irisSize))\n : (x / this.irisSize)) * eyeBoxSize[0] + eyeBox.startPoint[0],\n (y / this.irisSize) * eyeBoxSize[1] + eyeBox.startPoint[1], z,\n ]);\n }\n return { rawCoords: eyeRawCoords, iris: eyeRawCoords.slice(IRIS_IRIS_INDEX) };\n }\n\n // The z-coordinates returned for the iris are unreliable, so we take the z values from the surrounding keypoints.\n getAdjustedIrisCoords(rawCoords, irisCoords, direction) {\n const upperCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeUpper0`][IRIS_UPPER_CENTER_INDEX]][2];\n const lowerCenterZ = rawCoords[coords.MESH_ANNOTATIONS[`${direction}EyeLower0`][IRIS_LOWER_CENTER_INDEX]][2];\n const averageZ = (upperCenterZ + lowerCenterZ) / 2;\n // Iris indices: 0: center | 1: right | 2: above | 3: left | 4: below\n return irisCoords.map((coord, i) => {\n let z = averageZ;\n if (i === 2) {\n z = upperCenterZ;\n } else if (i === 4) {\n z = lowerCenterZ;\n }\n return [coord[0], coord[1], z];\n });\n }\n\n async predict(input, config) {\n this.skipped++;\n let useFreshBox = false;\n // run new detector every skipFrames unless we only want box to start with\n let detector;\n if ((this.skipped > config.face.detector.skipFrames) || !config.face.mesh.enabled || !config.videoOptimized) {\n detector = await this.boundingBoxDetector.getBoundingBoxes(input);\n // don't reset on test image\n if ((input.shape[1] !== 255) && (input.shape[2] !== 255)) this.skipped = 0;\n }\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (detector && detector.boxes && (detector.boxes.length > 0) && (!config.face.mesh.enabled || (detector.boxes.length !== this.detectedFaces) && (this.detectedFaces !== config.face.detector.maxFaces))) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n for (const possible of detector.boxes) {\n this.storedBoxes.push({ startPoint: possible.box.startPoint.dataSync(), endPoint: possible.box.endPoint.dataSync(), landmarks: possible.landmarks, confidence: possible.confidence });\n }\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n\n if (useFreshBox) {\n if (!detector || !detector.boxes || (detector.boxes.length === 0)) {\n this.storedBoxes = [];\n this.detectedFaces = 0;\n return null;\n }\n for (const i in this.storedBoxes) {\n const scaledBox = bounding.scaleBoxCoordinates({ startPoint: this.storedBoxes[i].startPoint, endPoint: this.storedBoxes[i].endPoint }, detector.scaleFactor);\n const enlargedBox = bounding.enlargeBox(scaledBox);\n const landmarks = this.storedBoxes[i].landmarks.arraySync();\n const confidence = this.storedBoxes[i].confidence;\n this.storedBoxes[i] = { ...enlargedBox, confidence, landmarks };\n }\n this.runsWithoutFaceDetector = 0;\n }\n if (detector && detector.boxes) {\n detector.boxes.forEach((prediction) => {\n prediction.box.startPoint.dispose();\n prediction.box.endPoint.dispose();\n prediction.landmarks.dispose();\n });\n }\n\n // console.log(this.skipped, config.face.detector.skipFrames, this.detectedFaces, config.face.detector.maxFaces, detector?.boxes.length, this.storedBoxes.length);\n\n let results = tf.tidy(() => this.storedBoxes.map((box, i) => {\n let angle = 0;\n // The facial bounding box landmarks could come either from blazeface (if we are using a fresh box), or from the mesh model (if we are reusing an old box).\n const boxLandmarksFromMeshModel = box.landmarks.length >= LANDMARKS_COUNT;\n let [indexOfMouth, indexOfForehead] = MESH_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n if (boxLandmarksFromMeshModel === false) {\n [indexOfMouth, indexOfForehead] = BLAZEFACE_KEYPOINTS_LINE_OF_SYMMETRY_INDICES;\n }\n angle = util.computeRotation(box.landmarks[indexOfMouth], box.landmarks[indexOfForehead]);\n const faceCenter = bounding.getBoxCenter({ startPoint: box.startPoint, endPoint: box.endPoint });\n const faceCenterNormalized = [faceCenter[0] / input.shape[2], faceCenter[1] / input.shape[1]];\n let rotatedImage = input;\n let rotationMatrix = util.IDENTITY_MATRIX;\n if (angle !== 0) {\n rotatedImage = tf.image.rotateWithOffset(input, angle, 0, faceCenterNormalized);\n rotationMatrix = util.buildRotationMatrix(-angle, faceCenter);\n }\n const face = bounding.cutBoxFromImageAndResize({ startPoint: box.startPoint, endPoint: box.endPoint }, rotatedImage, [this.meshHeight, this.meshWidth]).div(255);\n const outputFace = config.face.detector.rotation ? tf.image.rotateWithOffset(face, angle) : face;\n\n // if we're not going to produce mesh, don't spend time with further processing\n if (!config.face.mesh.enabled) {\n const prediction = {\n coords: null,\n box,\n faceConfidence: null,\n confidence: box.confidence,\n image: outputFace,\n };\n return prediction;\n }\n\n // The first returned tensor represents facial contours, which are included in the coordinates.\n const [, confidence, contourCoords] = this.meshDetector.predict(face);\n const confidenceVal = confidence.dataSync()[0];\n confidence.dispose();\n if (confidenceVal < config.face.detector.minConfidence) {\n contourCoords.dispose();\n return null;\n }\n const coordsReshaped = tf.reshape(contourCoords, [-1, 3]);\n let rawCoords = coordsReshaped.arraySync();\n if (config.face.iris.enabled) {\n const { box: leftEyeBox, boxSize: leftEyeBoxSize, crop: leftEyeCrop } = this.getEyeBox(rawCoords, face, LEFT_EYE_BOUNDS[0], LEFT_EYE_BOUNDS[1], true);\n const { box: rightEyeBox, boxSize: rightEyeBoxSize, crop: rightEyeCrop } = this.getEyeBox(rawCoords, face, RIGHT_EYE_BOUNDS[0], RIGHT_EYE_BOUNDS[1]);\n const eyePredictions = (this.irisModel.predict(tf.concat([leftEyeCrop, rightEyeCrop])));\n const eyePredictionsData = eyePredictions.dataSync();\n eyePredictions.dispose();\n const leftEyeData = eyePredictionsData.slice(0, IRIS_NUM_COORDINATES * 3);\n const { rawCoords: leftEyeRawCoords, iris: leftIrisRawCoords } = this.getEyeCoords(leftEyeData, leftEyeBox, leftEyeBoxSize, true);\n const rightEyeData = eyePredictionsData.slice(IRIS_NUM_COORDINATES * 3);\n const { rawCoords: rightEyeRawCoords, iris: rightIrisRawCoords } = this.getEyeCoords(rightEyeData, rightEyeBox, rightEyeBoxSize);\n const leftToRightEyeDepthDifference = this.getLeftToRightEyeDepthDifference(rawCoords);\n if (Math.abs(leftToRightEyeDepthDifference) < 30) { // User is looking straight ahead.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left');\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right');\n // If the user is looking to the left or to the right, the iris coordinates tend to diverge too much from the mesh coordinates for them to be merged. So we only update a single contour line above and below the eye.\n } else if (leftToRightEyeDepthDifference < 1) { // User is looking towards the right.\n replaceRawCoordinates(rawCoords, leftEyeRawCoords, 'left', ['EyeUpper0', 'EyeLower0']);\n } else { // User is looking towards the left.\n replaceRawCoordinates(rawCoords, rightEyeRawCoords, 'right', ['EyeUpper0', 'EyeLower0']);\n }\n const adjustedLeftIrisCoords = this.getAdjustedIrisCoords(rawCoords, leftIrisRawCoords, 'left');\n const adjustedRightIrisCoords = this.getAdjustedIrisCoords(rawCoords, rightIrisRawCoords, 'right');\n rawCoords = rawCoords.concat(adjustedLeftIrisCoords).concat(adjustedRightIrisCoords);\n }\n const transformedCoordsData = this.transformRawCoords(rawCoords, box, angle, rotationMatrix);\n tf.dispose(rawCoords);\n const landmarksBox = bounding.enlargeBox(this.calculateLandmarksBoundingBox(transformedCoordsData));\n const transformedCoords = tf.tensor2d(transformedCoordsData);\n const prediction = {\n coords: transformedCoords,\n box: landmarksBox,\n faceConfidence: confidenceVal,\n confidence: box.confidence,\n image: outputFace,\n };\n this.storedBoxes[i] = { ...landmarksBox, landmarks: transformedCoords.arraySync(), confidence: box.confidence, faceConfidence: confidenceVal };\n return prediction;\n }));\n results = results.filter((a) => a !== null);\n this.detectedFaces = results.length;\n return results;\n }\n\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint, landmarks };\n }\n}\nexports.Pipeline = Pipeline;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as blazeface from './blazeface.js';\nimport * as pipe from './facepipeline.js';\nimport * as coords from './coords.js';\n\nclass MediaPipeFaceMesh {\n constructor(blazeFace, blazeMeshModel, irisModel, config) {\n this.pipeline = new pipe.Pipeline(blazeFace, blazeMeshModel, irisModel, config);\n this.config = config;\n }\n\n async estimateFaces(input, config) {\n const predictions = await this.pipeline.predict(input, config);\n const results = [];\n for (const prediction of (predictions || [])) {\n // guard against disposed tensors on long running operations such as pause in middle of processing\n if (prediction.isDisposedInternal) continue;\n const mesh = prediction.coords ? prediction.coords.arraySync() : null;\n const annotations = {};\n if (mesh && mesh.length > 0) {\n for (const key in coords.MESH_ANNOTATIONS) {\n if (config.face.iris.enabled || key.includes('Iris') === false) {\n annotations[key] = coords.MESH_ANNOTATIONS[key].map((index) => mesh[index]);\n }\n }\n }\n results.push({\n confidence: prediction.confidence || 0,\n box: prediction.box ? [prediction.box.startPoint[0], prediction.box.startPoint[1], prediction.box.endPoint[0] - prediction.box.startPoint[0], prediction.box.endPoint[1] - prediction.box.startPoint[1]] : 0,\n mesh,\n annotations,\n image: prediction.image ? tf.clone(prediction.image) : null,\n });\n if (prediction.coords) prediction.coords.dispose();\n if (prediction.image) prediction.image.dispose();\n }\n return results;\n }\n}\n\nasync function load(config) {\n const models = await Promise.all([\n blazeface.load(config),\n tf.loadGraphModel(config.face.mesh.modelPath, { fromTFHub: config.face.mesh.modelPath.includes('tfhub.dev') }),\n tf.loadGraphModel(config.face.iris.modelPath, { fromTFHub: config.face.iris.modelPath.includes('tfhub.dev') }),\n ]);\n const faceMesh = new MediaPipeFaceMesh(models[0], models[1], models[2], config);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.mesh.modelPath.match(/\\/(.*)\\./)[1]}`);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.iris.modelPath.match(/\\/(.*)\\./)[1]}`);\n return faceMesh;\n}\n\nexports.load = load;\nexports.MediaPipeFaceMesh = MediaPipeFaceMesh;\nexports.triangulation = coords.TRI468;\n", "const profileData = {};\n\nfunction profile(name, data) {\n if (!data || !data.kernels) return;\n const maxResults = 5;\n const time = data.kernels\n .filter((a) => a.kernelTimeMs > 0)\n .reduce((a, b) => a += b.kernelTimeMs, 0);\n const slowest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.kernelTimeMs > 0)\n .sort((a, b) => b.kernelTimeMs - a.kernelTimeMs);\n const largest = data.kernels\n .map((a, i) => { a.id = i; return a; })\n .filter((a) => a.totalBytesSnapshot > 0)\n .sort((a, b) => b.totalBytesSnapshot - a.totalBytesSnapshot);\n if (slowest.length > maxResults) slowest.length = maxResults;\n if (largest.length > maxResults) largest.length = maxResults;\n const res = { newBytes: data.newBytes, newTensors: data.newTensors, peakBytes: data.peakBytes, numKernelOps: data.kernels.length, timeKernelOps: time, slowestKernelOps: slowest, largestKernelOps: largest };\n profileData[name] = res;\n // eslint-disable-next-line no-console\n console.log('Human profiler', name, res);\n}\n\nexports.run = profile;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { age: 0 };\nlet frame = Number.MAX_SAFE_INTEGER;\n\nasync function load(config) {\n if (!models.age) {\n models.age = await tf.loadGraphModel(config.face.age.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.age.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.age;\n}\n\nasync function predict(image, config) {\n if (!models.age) return null;\n if ((frame < config.face.age.skipFrames) && config.videoOptimized && last.age && (last.age > 0)) {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.age.inputSize, config.face.age.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n const enhance = tf.mul(resize, [255.0]);\n tf.dispose(resize);\n\n let ageT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.age.enabled) ageT = await models.age.predict(enhance);\n } else {\n const profileAge = config.face.age.enabled ? await tf.profile(() => models.age.predict(enhance)) : {};\n ageT = profileAge.result.clone();\n profileAge.result.dispose();\n profile.run('age', profileAge);\n }\n enhance.dispose();\n\n if (ageT) {\n const data = ageT.dataSync();\n obj.age = Math.trunc(10 * data[0]) / 10;\n }\n ageT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst models = {};\nlet last = { gender: '' };\nlet frame = Number.MAX_SAFE_INTEGER;\nlet alternative = false;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\n\nasync function load(config) {\n if (!models.gender) {\n models.gender = await tf.loadGraphModel(config.face.gender.modelPath);\n alternative = models.gender.inputs[0].shape[3] === 1;\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.gender.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.gender;\n}\n\nasync function predict(image, config) {\n if (!models.gender) return null;\n if ((frame < config.face.gender.skipFrames) && config.videoOptimized && last.gender !== '') {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.gender.inputSize, config.face.gender.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.gender.inputSize, config.face.gender.inputSize], false);\n let enhance;\n if (alternative) {\n enhance = tf.tidy(() => {\n const [red, green, blue] = tf.split(resize, 3, 3);\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n return grayscale.sub(0.5).mul(2);\n });\n } else {\n enhance = tf.mul(resize, [255.0]);\n }\n // const resize = tf.image.resizeBilinear(image, [config.face.age.inputSize, config.face.age.inputSize], false);\n tf.dispose(resize);\n\n let genderT;\n const obj = {};\n\n if (!config.profile) {\n if (config.face.gender.enabled) genderT = await models.gender.predict(enhance);\n } else {\n const profileGender = config.face.gender.enabled ? await tf.profile(() => models.gender.predict(enhance)) : {};\n genderT = profileGender.result.clone();\n profileGender.result.dispose();\n profile.run('gender', profileGender);\n }\n enhance.dispose();\n\n if (genderT) {\n const data = genderT.dataSync();\n if (alternative) {\n // returns two values 0..1, bigger one is prediction\n const confidence = Math.trunc(100 * Math.abs(data[0] - data[1])) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] > data[1] ? 'female' : 'male';\n obj.confidence = confidence;\n }\n } else {\n // returns one value 0..1, .5 is prediction threshold\n const confidence = Math.trunc(200 * Math.abs((data[0] - 0.5))) / 100;\n if (confidence > config.face.gender.minConfidence) {\n obj.gender = data[0] <= 0.5 ? 'female' : 'male';\n obj.confidence = Math.min(0.99, confidence);\n }\n }\n }\n genderT.dispose();\n\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\nconst annotations = ['angry', 'disgust', 'fear', 'happy', 'sad', 'surpise', 'neutral'];\nconst models = {};\nlet last = [];\nlet frame = Number.MAX_SAFE_INTEGER;\n\n// tuning values\nconst rgb = [0.2989, 0.5870, 0.1140]; // factors for red/green/blue colors when converting to grayscale\nconst scale = 1; // score multiplication factor\n\nasync function load(config) {\n if (!models.emotion) {\n models.emotion = await tf.loadGraphModel(config.face.emotion.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.emotion.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.emotion;\n}\n\nasync function predict(image, config) {\n if (!models.emotion) return null;\n if ((frame < config.face.emotion.skipFrames) && config.videoOptimized && (last.length > 0)) {\n frame += 1;\n return last;\n }\n frame = 0;\n return new Promise(async (resolve) => {\n /*\n const zoom = [0, 0]; // 0..1 meaning 0%..100%\n const box = [[\n (image.shape[1] * zoom[0]) / image.shape[1],\n (image.shape[2] * zoom[1]) / image.shape[2],\n (image.shape[1] - (image.shape[1] * zoom[0])) / image.shape[1],\n (image.shape[2] - (image.shape[2] * zoom[1])) / image.shape[2],\n ]];\n const resize = tf.image.cropAndResize(image, box, [0], [config.face.emotion.inputSize, config.face.emotion.inputSize]);\n */\n const resize = tf.image.resizeBilinear(image, [config.face.emotion.inputSize, config.face.emotion.inputSize], false);\n const [red, green, blue] = tf.split(resize, 3, 3);\n resize.dispose();\n // weighted rgb to grayscale: https://www.mathworks.com/help/matlab/ref/rgb2gray.html\n const redNorm = tf.mul(red, rgb[0]);\n const greenNorm = tf.mul(green, rgb[1]);\n const blueNorm = tf.mul(blue, rgb[2]);\n red.dispose();\n green.dispose();\n blue.dispose();\n const grayscale = tf.addN([redNorm, greenNorm, blueNorm]);\n redNorm.dispose();\n greenNorm.dispose();\n blueNorm.dispose();\n const normalize = tf.tidy(() => grayscale.sub(0.5).mul(2));\n grayscale.dispose();\n const obj = [];\n if (config.face.emotion.enabled) {\n let data;\n if (!config.profile) {\n const emotionT = await models.emotion.predict(normalize);\n data = emotionT.dataSync();\n tf.dispose(emotionT);\n } else {\n const profileData = await tf.profile(() => models.emotion.predict(normalize));\n data = profileData.result.dataSync();\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n for (let i = 0; i < data.length; i++) {\n if (scale * data[i] > config.face.emotion.minConfidence) obj.push({ score: Math.min(0.99, Math.trunc(100 * scale * data[i]) / 100), emotion: annotations[i] });\n }\n obj.sort((a, b) => b.score - a.score);\n }\n normalize.dispose();\n last = obj;\n resolve(obj);\n });\n}\n\nexports.predict = predict;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as profile from '../profile.js';\n\n// based on https://github.com/sirius-ai/MobileFaceNet_TF\n// model converted from https://github.com/sirius-ai/MobileFaceNet_TF/files/3551493/FaceMobileNet192_train_false.zip\n\nconst models = {};\n\nasync function load(config) {\n if (!models.embedding) {\n models.embedding = await tf.loadGraphModel(config.face.embedding.modelPath);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.face.embedding.modelPath.match(/\\/(.*)\\./)[1]}`);\n }\n return models.embedding;\n}\n\nfunction simmilarity(embedding1, embedding2) {\n if (embedding1?.length !== embedding2?.length) return 0;\n // euclidean distance\n const distance = 10 * Math.sqrt(\n embedding1\n .map((val, i) => (val - embedding2[i]))\n .reduce((dist, diff) => dist + (diff ** 2), 0),\n );\n const confidence = 2 * (0.5 - distance); // double confidence output for bigger differences and round to three decimals\n return Math.trunc(1000 * confidence) / 1000;\n}\n\nasync function predict(image, config) {\n if (!models.embedding) return null;\n return new Promise(async (resolve) => {\n const resize = tf.image.resizeBilinear(image, [config.face.embedding.inputSize, config.face.embedding.inputSize], false);\n // const normalize = tf.tidy(() => resize.div(127.5).sub(0.5)); // this is -0.5...0.5 ???\n let data = [];\n if (config.face.embedding.enabled) {\n if (!config.profile) {\n const embeddingT = await models.embedding.predict({ img_inputs: resize });\n data = [...embeddingT.dataSync()]; // convert object array to standard array\n tf.dispose(embeddingT);\n } else {\n const profileData = await tf.profile(() => models.embedding.predict({ img_inputs: resize }));\n data = [...profileData.result.dataSync()];\n profileData.result.dispose();\n profile.run('emotion', profileData);\n }\n }\n resize.dispose();\n // normalize.dispose();\n resolve(data);\n });\n}\n\nexports.predict = predict;\nexports.simmilarity = simmilarity;\nexports.load = load;\n", "import * as tf from '../../dist/tfjs.esm.js';\n\nclass BaseModel {\n constructor(model, outputStride) {\n this.model = model;\n this.outputStride = outputStride;\n }\n\n predict(input) {\n return tf.tidy(() => {\n const asFloat = this.preprocessInput(input.toFloat());\n const asBatch = asFloat.expandDims(0);\n const results = this.model.predict(asBatch);\n const results3d = results.map((y) => y.squeeze([0]));\n const namedResults = this.nameOutputResults(results3d);\n return {\n heatmapScores: namedResults.heatmap.sigmoid(),\n offsets: namedResults.offsets,\n displacementFwd: namedResults.displacementFwd,\n displacementBwd: namedResults.displacementBwd,\n };\n });\n }\n\n /**\n * Releases the CPU and GPU memory allocated by the model.\n */\n dispose() {\n this.model.dispose();\n }\n}\nexports.BaseModel = BaseModel;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as modelBase from './modelBase';\n\nclass MobileNet extends modelBase.BaseModel {\n // eslint-disable-next-line class-methods-use-this\n preprocessInput(input) {\n // Normalize the pixels [0, 255] to be between [-1, 1].\n return tf.tidy(() => tf.div(input, 127.5).sub(1.0));\n }\n\n // eslint-disable-next-line class-methods-use-this\n nameOutputResults(results) {\n const [offsets, heatmap, displacementFwd, displacementBwd] = results;\n return { offsets, heatmap, displacementFwd, displacementBwd };\n }\n}\nexports.MobileNet = MobileNet;\n", "// algorithm based on Coursera Lecture from Algorithms, Part 1: https://www.coursera.org/learn/algorithms-part1/lecture/ZjoSM/heapsort\nfunction half(k) {\n return Math.floor(k / 2);\n}\nclass MaxHeap {\n constructor(maxSize, getElementValue) {\n this.priorityQueue = new Array(maxSize);\n this.numberOfElements = -1;\n this.getElementValue = getElementValue;\n }\n\n enqueue(x) {\n this.priorityQueue[++this.numberOfElements] = x;\n this.swim(this.numberOfElements);\n }\n\n dequeue() {\n const max = this.priorityQueue[0];\n this.exchange(0, this.numberOfElements--);\n this.sink(0);\n this.priorityQueue[this.numberOfElements + 1] = null;\n return max;\n }\n\n empty() {\n return this.numberOfElements === -1;\n }\n\n size() {\n return this.numberOfElements + 1;\n }\n\n all() {\n return this.priorityQueue.slice(0, this.numberOfElements + 1);\n }\n\n max() {\n return this.priorityQueue[0];\n }\n\n swim(k) {\n while (k > 0 && this.less(half(k), k)) {\n this.exchange(k, half(k));\n k = half(k);\n }\n }\n\n sink(k) {\n while (2 * k <= this.numberOfElements) {\n let j = 2 * k;\n if (j < this.numberOfElements && this.less(j, j + 1)) j++;\n if (!this.less(k, j)) break;\n this.exchange(k, j);\n k = j;\n }\n }\n\n getValueAt(i) {\n return this.getElementValue(this.priorityQueue[i]);\n }\n\n less(i, j) {\n return this.getValueAt(i) < this.getValueAt(j);\n }\n\n exchange(i, j) {\n const t = this.priorityQueue[i];\n this.priorityQueue[i] = this.priorityQueue[j];\n this.priorityQueue[j] = t;\n }\n}\nexports.MaxHeap = MaxHeap;\n", "import * as heapSort from './heapSort';\n\nfunction scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores) {\n const [height, width] = scores.shape;\n let localMaximum = true;\n const yStart = Math.max(heatmapY - localMaximumRadius, 0);\n const yEnd = Math.min(heatmapY + localMaximumRadius + 1, height);\n for (let yCurrent = yStart; yCurrent < yEnd; ++yCurrent) {\n const xStart = Math.max(heatmapX - localMaximumRadius, 0);\n const xEnd = Math.min(heatmapX + localMaximumRadius + 1, width);\n for (let xCurrent = xStart; xCurrent < xEnd; ++xCurrent) {\n if (scores.get(yCurrent, xCurrent, keypointId) > score) {\n localMaximum = false;\n break;\n }\n }\n if (!localMaximum) {\n break;\n }\n }\n return localMaximum;\n}\n/**\n * Builds a priority queue with part candidate positions for a specific image in\n * the batch. For this we find all local maxima in the score maps with score\n * values above a threshold. We create a single priority queue across all parts.\n */\nfunction buildPartWithScoreQueue(scoreThreshold, localMaximumRadius, scores) {\n const [height, width, numKeypoints] = scores.shape;\n const queue = new heapSort.MaxHeap(height * width * numKeypoints, ({ score }) => score);\n for (let heatmapY = 0; heatmapY < height; ++heatmapY) {\n for (let heatmapX = 0; heatmapX < width; ++heatmapX) {\n for (let keypointId = 0; keypointId < numKeypoints; ++keypointId) {\n const score = scores.get(heatmapY, heatmapX, keypointId);\n // Only consider parts with score greater or equal to threshold as root candidates.\n if (score < scoreThreshold) continue;\n // Only consider keypoints whose score is maximum in a local window.\n if (scoreIsMaximumInLocalWindow(keypointId, score, heatmapY, heatmapX, localMaximumRadius, scores)) {\n queue.enqueue({ score, part: { heatmapY, heatmapX, id: keypointId } });\n }\n }\n }\n }\n return queue;\n}\nexports.buildPartWithScoreQueue = buildPartWithScoreQueue;\n", "exports.partNames = [\n 'nose', 'leftEye', 'rightEye', 'leftEar', 'rightEar', 'leftShoulder',\n 'rightShoulder', 'leftElbow', 'rightElbow', 'leftWrist', 'rightWrist',\n 'leftHip', 'rightHip', 'leftKnee', 'rightKnee', 'leftAnkle', 'rightAnkle',\n];\nexports.NUM_KEYPOINTS = exports.partNames.length;\nexports.partIds = exports.partNames.reduce((result, jointName, i) => {\n result[jointName] = i;\n return result;\n}, {});\nconst connectedPartNames = [\n ['leftHip', 'leftShoulder'], ['leftElbow', 'leftShoulder'],\n ['leftElbow', 'leftWrist'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['rightHip', 'rightShoulder'],\n ['rightElbow', 'rightShoulder'], ['rightElbow', 'rightWrist'],\n ['rightHip', 'rightKnee'], ['rightKnee', 'rightAnkle'],\n ['leftShoulder', 'rightShoulder'], ['leftHip', 'rightHip'],\n];\n/*\n * Define the skeleton. This defines the parent->child relationships of our\n * tree. Arbitrarily this defines the nose as the root of the tree, however\n * since we will infer the displacement for both parent->child and\n * child->parent, we can define the tree root as any node.\n */\nexports.poseChain = [\n ['nose', 'leftEye'], ['leftEye', 'leftEar'], ['nose', 'rightEye'],\n ['rightEye', 'rightEar'], ['nose', 'leftShoulder'],\n ['leftShoulder', 'leftElbow'], ['leftElbow', 'leftWrist'],\n ['leftShoulder', 'leftHip'], ['leftHip', 'leftKnee'],\n ['leftKnee', 'leftAnkle'], ['nose', 'rightShoulder'],\n ['rightShoulder', 'rightElbow'], ['rightElbow', 'rightWrist'],\n ['rightShoulder', 'rightHip'], ['rightHip', 'rightKnee'],\n ['rightKnee', 'rightAnkle'],\n];\nexports.connectedPartIndices = connectedPartNames.map(([jointNameA, jointNameB]) => ([exports.partIds[jointNameA], exports.partIds[jointNameB]]));\nexports.partChannels = [\n 'left_face',\n 'right_face',\n 'right_upper_leg_front',\n 'right_lower_leg_back',\n 'right_upper_leg_back',\n 'left_lower_leg_front',\n 'left_upper_leg_front',\n 'left_upper_leg_back',\n 'left_lower_leg_back',\n 'right_feet',\n 'right_lower_leg_front',\n 'left_feet',\n 'torso_front',\n 'torso_back',\n 'right_upper_arm_front',\n 'right_upper_arm_back',\n 'right_lower_arm_back',\n 'left_lower_arm_front',\n 'left_upper_arm_front',\n 'left_upper_arm_back',\n 'left_lower_arm_back',\n 'right_hand',\n 'right_lower_arm_front',\n 'left_hand',\n];\n", "import * as kpt from './keypoints';\n\nfunction getOffsetPoint(y, x, keypoint, offsets) {\n return {\n y: offsets.get(y, x, keypoint),\n x: offsets.get(y, x, keypoint + kpt.NUM_KEYPOINTS),\n };\n}\nexports.getOffsetPoint = getOffsetPoint;\n\nfunction getImageCoords(part, outputStride, offsets) {\n const { heatmapY, heatmapX, id: keypoint } = part;\n const { y, x } = getOffsetPoint(heatmapY, heatmapX, keypoint, offsets);\n return {\n x: part.heatmapX * outputStride + x,\n y: part.heatmapY * outputStride + y,\n };\n}\nexports.getImageCoords = getImageCoords;\n\nfunction fillArray(element, size) {\n const result = new Array(size);\n for (let i = 0; i < size; i++) {\n result[i] = element;\n }\n return result;\n}\nexports.fillArray = fillArray;\n\nfunction clamp(a, min, max) {\n if (a < min) return min;\n if (a > max) return max;\n return a;\n}\nexports.clamp = clamp;\n\nfunction squaredDistance(y1, x1, y2, x2) {\n const dy = y2 - y1;\n const dx = x2 - x1;\n return dy * dy + dx * dx;\n}\nexports.squaredDistance = squaredDistance;\n\nfunction addVectors(a, b) {\n return { x: a.x + b.x, y: a.y + b.y };\n}\nexports.addVectors = addVectors;\n\nfunction clampVector(a, min, max) {\n return { y: clamp(a.y, min, max), x: clamp(a.x, min, max) };\n}\nexports.clampVector = clampVector;\n", "import * as keypoints from './keypoints';\nimport * as vectors from './vectors';\n\nconst parentChildrenTuples = keypoints.poseChain.map(([parentJoinName, childJoinName]) => ([keypoints.partIds[parentJoinName], keypoints.partIds[childJoinName]]));\nconst parentToChildEdges = parentChildrenTuples.map(([, childJointId]) => childJointId);\nconst childToParentEdges = parentChildrenTuples.map(([parentJointId]) => parentJointId);\nfunction getDisplacement(edgeId, point, displacements) {\n const numEdges = displacements.shape[2] / 2;\n return {\n y: displacements.get(point.y, point.x, edgeId),\n x: displacements.get(point.y, point.x, numEdges + edgeId),\n };\n}\nfunction getStridedIndexNearPoint(point, outputStride, height, width) {\n return {\n y: vectors.clamp(Math.round(point.y / outputStride), 0, height - 1),\n x: vectors.clamp(Math.round(point.x / outputStride), 0, width - 1),\n };\n}\n/**\n * We get a new keypoint along the `edgeId` for the pose instance, assuming\n * that the position of the `idSource` part is already known. For this, we\n * follow the displacement vector from the source to target part (stored in\n * the `i`-t channel of the displacement tensor). The displaced keypoint\n * vector is refined using the offset vector by `offsetRefineStep` times.\n */\nfunction traverseToTargetKeypoint(edgeId, sourceKeypoint, targetKeypointId, scoresBuffer, offsets, outputStride, displacements, offsetRefineStep = 2) {\n const [height, width] = scoresBuffer.shape;\n // Nearest neighbor interpolation for the source->target displacements.\n const sourceKeypointIndices = getStridedIndexNearPoint(sourceKeypoint.position, outputStride, height, width);\n const displacement = getDisplacement(edgeId, sourceKeypointIndices, displacements);\n const displacedPoint = vectors.addVectors(sourceKeypoint.position, displacement);\n let targetKeypoint = displacedPoint;\n for (let i = 0; i < offsetRefineStep; i++) {\n const targetKeypointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const offsetPoint = vectors.getOffsetPoint(targetKeypointIndices.y, targetKeypointIndices.x, targetKeypointId, offsets);\n targetKeypoint = vectors.addVectors({\n x: targetKeypointIndices.x * outputStride,\n y: targetKeypointIndices.y * outputStride,\n }, { x: offsetPoint.x, y: offsetPoint.y });\n }\n const targetKeyPointIndices = getStridedIndexNearPoint(targetKeypoint, outputStride, height, width);\n const score = scoresBuffer.get(targetKeyPointIndices.y, targetKeyPointIndices.x, targetKeypointId);\n return { position: targetKeypoint, part: keypoints.partNames[targetKeypointId], score };\n}\n/**\n * Follows the displacement fields to decode the full pose of the object\n * instance given the position of a part that acts as root.\n *\n * @return An array of decoded keypoints and their scores for a single pose\n */\nfunction decodePose(root, scores, offsets, outputStride, displacementsFwd, displacementsBwd) {\n const numParts = scores.shape[2];\n const numEdges = parentToChildEdges.length;\n const instanceKeypoints = new Array(numParts);\n // Start a new detection instance at the position of the root.\n const { part: rootPart, score: rootScore } = root;\n const rootPoint = vectors.getImageCoords(rootPart, outputStride, offsets);\n instanceKeypoints[rootPart.id] = {\n score: rootScore,\n part: keypoints.partNames[rootPart.id],\n position: rootPoint,\n };\n // Decode the part positions upwards in the tree, following the backward\n // displacements.\n for (let edge = numEdges - 1; edge >= 0; --edge) {\n const sourceKeypointId = parentToChildEdges[edge];\n const targetKeypointId = childToParentEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsBwd);\n }\n }\n // Decode the part positions downwards in the tree, following the forward\n // displacements.\n for (let edge = 0; edge < numEdges; ++edge) {\n const sourceKeypointId = childToParentEdges[edge];\n const targetKeypointId = parentToChildEdges[edge];\n if (instanceKeypoints[sourceKeypointId] && !instanceKeypoints[targetKeypointId]) {\n instanceKeypoints[targetKeypointId] = traverseToTargetKeypoint(edge, instanceKeypoints[sourceKeypointId], targetKeypointId, scores, offsets, outputStride, displacementsFwd);\n }\n }\n return instanceKeypoints;\n}\nexports.decodePose = decodePose;\n", "import * as buildParts from './buildParts';\nimport * as decodePose from './decodePose';\nimport * as vectors from './vectors';\n\nfunction withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, { x, y }, keypointId) {\n return poses.some(({ keypoints }) => {\n const correspondingKeypoint = keypoints[keypointId].position;\n return vectors.squaredDistance(y, x, correspondingKeypoint.y, correspondingKeypoint.x) <= squaredNmsRadius;\n });\n}\n/* Score the newly proposed object instance without taking into account\n * the scores of the parts that overlap with any previously detected\n * instance.\n */\nfunction getInstanceScore(existingPoses, squaredNmsRadius, instanceKeypoints) {\n const notOverlappedKeypointScores = instanceKeypoints.reduce((result, { position, score }, keypointId) => {\n if (!withinNmsRadiusOfCorrespondingPoint(existingPoses, squaredNmsRadius, position, keypointId)) {\n result += score;\n }\n return result;\n }, 0.0);\n return notOverlappedKeypointScores / instanceKeypoints.length;\n}\n// A point (y, x) is considered as root part candidate if its score is a\n// maximum in a window |y - y'| <= kLocalMaximumRadius, |x - x'| <=\n// kLocalMaximumRadius.\nconst kLocalMaximumRadius = 1;\n/**\n * Detects multiple poses and finds their parts from part scores and\n * displacement vectors. It returns up to `maxDetections` object instance\n * detections in decreasing root score order. It works as follows: We first\n * create a priority queue with local part score maxima above\n * `scoreThreshold`, considering all parts at the same time. Then we\n * iteratively pull the top element of the queue (in decreasing score order)\n * and treat it as a root candidate for a new object instance. To avoid\n * duplicate detections, we reject the root candidate if it is within a disk\n * of `nmsRadius` pixels from the corresponding part of a previously detected\n * instance, which is a form of part-based non-maximum suppression (NMS). If\n * the root candidate passes the NMS check, we start a new object instance\n * detection, treating the corresponding part as root and finding the\n * positions of the remaining parts by following the displacement vectors\n * along the tree-structured part graph. We assign to the newly detected\n * instance a score equal to the sum of scores of its parts which have not\n * been claimed by a previous instance (i.e., those at least `nmsRadius`\n * pixels away from the corresponding part of all previously detected\n * instances), divided by the total number of parts `numParts`.\n *\n * @param heatmapScores 3-D tensor with shape `[height, width, numParts]`.\n * The value of heatmapScores[y, x, k]` is the score of placing the `k`-th\n * object part at position `(y, x)`.\n *\n * @param offsets 3-D tensor with shape `[height, width, numParts * 2]`.\n * The value of [offsets[y, x, k], offsets[y, x, k + numParts]]` is the\n * short range offset vector of the `k`-th object part at heatmap\n * position `(y, x)`.\n *\n * @param displacementsFwd 3-D tensor of shape\n * `[height, width, 2 * num_edges]`, where `num_edges = num_parts - 1` is the\n * number of edges (parent-child pairs) in the tree. It contains the forward\n * displacements between consecutive part from the root towards the leaves.\n *\n * @param displacementsBwd 3-D tensor of shape\n * `[height, width, 2 * num_edges]`, where `num_edges = num_parts - 1` is the\n * number of edges (parent-child pairs) in the tree. It contains the backward\n * displacements between consecutive part from the root towards the leaves.\n *\n * @param outputStride The output stride that was used when feed-forwarding\n * through the PoseNet model. Must be 32, 16, or 8.\n *\n * @param maxPoseDetections Maximum number of returned instance detections per\n * image.\n *\n * @param scoreThreshold Only return instance detections that have root part\n * score greater or equal to this value. Defaults to 0.5.\n *\n * @param nmsRadius Non-maximum suppression part distance. It needs to be\n * strictly positive. Two parts suppress each other if they are less than\n * `nmsRadius` pixels away. Defaults to 20.\n *\n * @return An array of poses and their scores, each containing keypoints and\n * the corresponding keypoint scores.\n */\nfunction decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, outputStride, maxPoseDetections, scoreThreshold = 0.5, nmsRadius = 20) {\n const poses = [];\n const queue = buildParts.buildPartWithScoreQueue(scoreThreshold, kLocalMaximumRadius, scoresBuffer);\n const squaredNmsRadius = nmsRadius * nmsRadius;\n // Generate at most maxDetections object instances per image in\n // decreasing root part score order.\n while (poses.length < maxPoseDetections && !queue.empty()) {\n // The top element in the queue is the next root candidate.\n const root = queue.dequeue();\n // Part-based non-maximum suppression: We reject a root candidate if it\n // is within a disk of `nmsRadius` pixels from the corresponding part of\n // a previously detected instance.\n const rootImageCoords = vectors.getImageCoords(root.part, outputStride, offsetsBuffer);\n if (withinNmsRadiusOfCorrespondingPoint(poses, squaredNmsRadius, rootImageCoords, root.part.id)) continue;\n // Start a new detection instance at the position of the root.\n const keypoints = decodePose.decodePose(root, scoresBuffer, offsetsBuffer, outputStride, displacementsFwdBuffer, displacementsBwdBuffer);\n const score = getInstanceScore(poses, squaredNmsRadius, keypoints);\n poses.push({ keypoints, score });\n }\n return poses;\n}\nexports.decodeMultiplePoses = decodeMultiplePoses;\n", "import * as kpt from './keypoints';\n\nfunction eitherPointDoesntMeetConfidence(a, b, minConfidence) {\n return (a < minConfidence || b < minConfidence);\n}\n\nfunction getAdjacentKeyPoints(keypoints, minConfidence) {\n return kpt.connectedPartIndices.reduce((result, [leftJoint, rightJoint]) => {\n if (eitherPointDoesntMeetConfidence(keypoints[leftJoint].score, keypoints[rightJoint].score, minConfidence)) {\n return result;\n }\n result.push([keypoints[leftJoint], keypoints[rightJoint]]);\n return result;\n }, []);\n}\nexports.getAdjacentKeyPoints = getAdjacentKeyPoints;\n\nconst { NEGATIVE_INFINITY, POSITIVE_INFINITY } = Number;\nfunction getBoundingBox(keypoints) {\n return keypoints.reduce(({ maxX, maxY, minX, minY }, { position: { x, y } }) => ({\n maxX: Math.max(maxX, x),\n maxY: Math.max(maxY, y),\n minX: Math.min(minX, x),\n minY: Math.min(minY, y),\n }), {\n maxX: NEGATIVE_INFINITY,\n maxY: NEGATIVE_INFINITY,\n minX: POSITIVE_INFINITY,\n minY: POSITIVE_INFINITY,\n });\n}\nexports.getBoundingBox = getBoundingBox;\n\nfunction getBoundingBoxPoints(keypoints) {\n const { minX, minY, maxX, maxY } = getBoundingBox(keypoints);\n return [{ x: minX, y: minY }, { x: maxX, y: minY }, { x: maxX, y: maxY }, { x: minX, y: maxY }];\n}\nexports.getBoundingBoxPoints = getBoundingBoxPoints;\n\nasync function toTensorBuffers3D(tensors) {\n return Promise.all(tensors.map((tensor) => tensor.buffer()));\n}\nexports.toTensorBuffers3D = toTensorBuffers3D;\n\nfunction scalePose(pose, scaleY, scaleX) {\n return {\n score: pose.score,\n keypoints: pose.keypoints.map(({ score, part, position }) => ({\n score,\n part,\n position: { x: position.x * scaleX, y: position.y * scaleY },\n })),\n };\n}\nexports.scalePose = scalePose;\n\nfunction resizeTo(image, [targetH, targetW]) {\n const input = image.squeeze(0);\n const resized = input.resizeBilinear([targetH, targetW]);\n input.dispose();\n return resized;\n}\nexports.resizeTo = resizeTo;\n\nfunction scaleAndFlipPoses(poses, [height, width], [inputResolutionHeight, inputResolutionWidth]) {\n const scaledPoses = poses.map((pose) => scalePose(pose, height / inputResolutionHeight, width / inputResolutionWidth));\n return scaledPoses;\n}\nexports.scaleAndFlipPoses = scaleAndFlipPoses;\n", "import * as tf from '../../dist/tfjs.esm.js';\nimport * as modelMobileNet from './modelMobileNet';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as util from './util';\n\nclass PoseNet {\n constructor(net) {\n this.baseModel = net;\n this.outputStride = 16;\n }\n\n async estimatePoses(input, config) {\n return new Promise(async (resolve) => {\n const height = input.shape[1];\n const width = input.shape[2];\n const resized = util.resizeTo(input, [config.body.inputSize, config.body.inputSize]);\n const res = this.baseModel.predict(resized);\n const allTensorBuffers = await util.toTensorBuffers3D([res.heatmapScores, res.offsets, res.displacementFwd, res.displacementBwd]);\n const scoresBuffer = allTensorBuffers[0];\n const offsetsBuffer = allTensorBuffers[1];\n const displacementsFwdBuffer = allTensorBuffers[2];\n const displacementsBwdBuffer = allTensorBuffers[3];\n const poses = await decodeMultiple.decodeMultiplePoses(scoresBuffer, offsetsBuffer, displacementsFwdBuffer, displacementsBwdBuffer, this.outputStride, config.body.maxDetections, config.body.scoreThreshold, config.body.nmsRadius);\n const resultPoses = util.scaleAndFlipPoses(poses, [height, width], [config.body.inputSize, config.body.inputSize]);\n res.heatmapScores.dispose();\n res.offsets.dispose();\n res.displacementFwd.dispose();\n res.displacementBwd.dispose();\n resized.dispose();\n resolve(resultPoses);\n });\n }\n\n dispose() {\n this.baseModel.dispose();\n }\n}\nexports.PoseNet = PoseNet;\n\nasync function load(config) {\n const graphModel = await tf.loadGraphModel(config.body.modelPath);\n const mobilenet = new modelMobileNet.MobileNet(graphModel, this.outputStride);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.body.modelPath.match(/\\/(.*)\\./)[1]}`);\n return new PoseNet(mobilenet);\n}\nexports.load = load;\n", "import * as modelMobileNet from './modelMobileNet';\nimport * as modelPoseNet from './modelPoseNet';\nimport * as decodeMultiple from './decodeMultiple';\nimport * as keypoints from './keypoints';\nimport * as util from './util';\n\nexports.load = modelPoseNet.load;\nexports.PoseNet = modelPoseNet.PoseNet;\n\nexports.MobileNet = modelMobileNet.MobileNet;\nexports.decodeMultiplePoses = decodeMultiple.decodeMultiplePoses;\nexports.partChannels = keypoints.partChannels;\nexports.partIds = keypoints.partIds;\nexports.partNames = keypoints.partNames;\nexports.poseChain = keypoints.poseChain;\nexports.getAdjacentKeyPoints = util.getAdjacentKeyPoints;\nexports.getBoundingBox = util.getBoundingBox;\nexports.getBoundingBoxPoints = util.getBoundingBoxPoints;\nexports.scaleAndFlipPoses = util.scaleAndFlipPoses;\nexports.scalePose = util.scalePose;\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\n\nclass HandDetector {\n constructor(model, inputSize, anchorsAnnotated) {\n this.model = model;\n this.anchors = anchorsAnnotated.map((anchor) => [anchor.x_center, anchor.y_center]);\n this.anchorsTensor = tf.tensor2d(this.anchors);\n this.inputSizeTensor = tf.tensor1d([inputSize, inputSize]);\n this.doubleInputSizeTensor = tf.tensor1d([inputSize * 2, inputSize * 2]);\n }\n\n normalizeBoxes(boxes) {\n return tf.tidy(() => {\n const boxOffsets = tf.slice(boxes, [0, 0], [-1, 2]);\n const boxSizes = tf.slice(boxes, [0, 2], [-1, 2]);\n const boxCenterPoints = tf.add(tf.div(boxOffsets, this.inputSizeTensor), this.anchorsTensor);\n const halfBoxSizes = tf.div(boxSizes, this.doubleInputSizeTensor);\n const startPoints = tf.mul(tf.sub(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n const endPoints = tf.mul(tf.add(boxCenterPoints, halfBoxSizes), this.inputSizeTensor);\n return tf.concat2d([startPoints, endPoints], 1);\n });\n }\n\n normalizeLandmarks(rawPalmLandmarks, index) {\n return tf.tidy(() => {\n const landmarks = tf.add(tf.div(rawPalmLandmarks.reshape([-1, 7, 2]), this.inputSizeTensor), this.anchors[index]);\n return tf.mul(landmarks, this.inputSizeTensor);\n });\n }\n\n async getBoxes(input, config) {\n const batched = this.model.predict(input);\n const predictions = batched.squeeze();\n batched.dispose();\n const scores = tf.tidy(() => tf.sigmoid(tf.slice(predictions, [0, 0], [-1, 1])).squeeze());\n const scoresVal = scores.dataSync();\n const rawBoxes = tf.slice(predictions, [0, 1], [-1, 4]);\n const boxes = this.normalizeBoxes(rawBoxes);\n rawBoxes.dispose();\n const filteredT = await tf.image.nonMaxSuppressionAsync(boxes, scores, config.hand.maxHands, config.hand.iouThreshold, config.hand.scoreThreshold);\n const filtered = filteredT.arraySync();\n\n scores.dispose();\n filteredT.dispose();\n const hands = [];\n for (const boxIndex of filtered) {\n if (scoresVal[boxIndex] >= config.hand.minConfidence) {\n const matchingBox = tf.slice(boxes, [boxIndex, 0], [1, -1]);\n const rawPalmLandmarks = tf.slice(predictions, [boxIndex, 5], [1, 14]);\n const palmLandmarks = tf.tidy(() => this.normalizeLandmarks(rawPalmLandmarks, boxIndex).reshape([-1, 2]));\n rawPalmLandmarks.dispose();\n hands.push({ box: matchingBox, palmLandmarks, confidence: scoresVal[boxIndex] });\n }\n }\n predictions.dispose();\n boxes.dispose();\n return hands;\n }\n\n async estimateHandBounds(input, config) {\n const inputHeight = input.shape[1];\n const inputWidth = input.shape[2];\n const image = tf.tidy(() => input.resizeBilinear([config.hand.inputSize, config.hand.inputSize]).div(127.5).sub(1));\n const predictions = await this.getBoxes(image, config);\n image.dispose();\n if (!predictions || predictions.length === 0) return null;\n const hands = [];\n for (const prediction of predictions) {\n const boxes = prediction.box.dataSync();\n const startPoint = boxes.slice(0, 2);\n const endPoint = boxes.slice(2, 4);\n const palmLandmarks = prediction.palmLandmarks.arraySync();\n prediction.box.dispose();\n prediction.palmLandmarks.dispose();\n hands.push(box.scaleBoxCoordinates({ startPoint, endPoint, palmLandmarks, confidence: prediction.confidence }, [inputWidth / config.hand.inputSize, inputHeight / config.hand.inputSize]));\n }\n return hands;\n }\n}\nexports.HandDetector = HandDetector;\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as box from './box';\nimport * as util from './util';\n\nconst PALM_BOX_SHIFT_VECTOR = [0, -0.4];\nconst PALM_BOX_ENLARGE_FACTOR = 3;\nconst HAND_BOX_SHIFT_VECTOR = [0, -0.1]; // move detected hand box by x,y to ease landmark detection\nconst HAND_BOX_ENLARGE_FACTOR = 1.65; // increased from model default 1.65;\nconst PALM_LANDMARK_IDS = [0, 5, 9, 13, 17, 1, 2];\nconst PALM_LANDMARKS_INDEX_OF_PALM_BASE = 0;\nconst PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE = 2;\n\nclass HandPipeline {\n constructor(boundingBoxDetector, meshDetector, inputSize) {\n this.boxDetector = boundingBoxDetector;\n this.meshDetector = meshDetector;\n this.inputSize = inputSize;\n this.storedBoxes = [];\n this.skipped = 1000;\n this.detectedHands = 0;\n }\n\n getBoxForPalmLandmarks(palmLandmarks, rotationMatrix) {\n const rotatedPalmLandmarks = palmLandmarks.map((coord) => {\n const homogeneousCoordinate = [...coord, 1];\n return util.rotatePoint(homogeneousCoordinate, rotationMatrix);\n });\n const boxAroundPalm = this.calculateLandmarksBoundingBox(rotatedPalmLandmarks);\n return box.enlargeBox(box.squarifyBox(box.shiftBox(boxAroundPalm, PALM_BOX_SHIFT_VECTOR)), PALM_BOX_ENLARGE_FACTOR);\n }\n\n getBoxForHandLandmarks(landmarks) {\n const boundingBox = this.calculateLandmarksBoundingBox(landmarks);\n const boxAroundHand = box.enlargeBox(box.squarifyBox(box.shiftBox(boundingBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const palmLandmarks = [];\n for (let i = 0; i < PALM_LANDMARK_IDS.length; i++) {\n palmLandmarks.push(landmarks[PALM_LANDMARK_IDS[i]].slice(0, 2));\n }\n boxAroundHand.palmLandmarks = palmLandmarks;\n return boxAroundHand;\n }\n\n transformRawCoords(rawCoords, box2, angle, rotationMatrix) {\n const boxSize = box.getBoxSize(box2);\n const scaleFactor = [boxSize[0] / this.inputSize, boxSize[1] / this.inputSize];\n const coordsScaled = rawCoords.map((coord) => [\n scaleFactor[0] * (coord[0] - this.inputSize / 2),\n scaleFactor[1] * (coord[1] - this.inputSize / 2),\n coord[2],\n ]);\n const coordsRotationMatrix = util.buildRotationMatrix(angle, [0, 0]);\n const coordsRotated = coordsScaled.map((coord) => {\n const rotated = util.rotatePoint(coord, coordsRotationMatrix);\n return [...rotated, coord[2]];\n });\n const inverseRotationMatrix = util.invertTransformMatrix(rotationMatrix);\n const boxCenter = [...box.getBoxCenter(box2), 1];\n const originalBoxCenter = [\n util.dot(boxCenter, inverseRotationMatrix[0]),\n util.dot(boxCenter, inverseRotationMatrix[1]),\n ];\n return coordsRotated.map((coord) => [\n coord[0] + originalBoxCenter[0],\n coord[1] + originalBoxCenter[1],\n coord[2],\n ]);\n }\n\n async estimateHands(image, config) {\n this.skipped++;\n let useFreshBox = false;\n\n // run new detector every skipFrames unless we only want box to start with\n let boxes;\n if ((this.skipped > config.hand.skipFrames) || !config.hand.landmarks || !config.videoOptimized) {\n boxes = await this.boxDetector.estimateHandBounds(image, config);\n // don't reset on test image\n if ((image.shape[1] !== 255) && (image.shape[2] !== 255)) this.skipped = 0;\n }\n\n // if detector result count doesn't match current working set, use it to reset current working set\n if (boxes && (boxes.length > 0) && ((boxes.length !== this.detectedHands) && (this.detectedHands !== config.hand.maxHands) || !config.hand.landmarks)) {\n this.storedBoxes = [];\n this.detectedHands = 0;\n for (const possible of boxes) this.storedBoxes.push(possible);\n if (this.storedBoxes.length > 0) useFreshBox = true;\n }\n const hands = [];\n // console.log(`skipped: ${this.skipped} max: ${config.hand.maxHands} detected: ${this.detectedHands} stored: ${this.storedBoxes.length} new: ${boxes?.length}`);\n\n // go through working set of boxes\n for (const i in this.storedBoxes) {\n const currentBox = this.storedBoxes[i];\n if (!currentBox) continue;\n if (config.hand.landmarks) {\n const angle = util.computeRotation(currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_PALM_BASE], currentBox.palmLandmarks[PALM_LANDMARKS_INDEX_OF_MIDDLE_FINGER_BASE]);\n const palmCenter = box.getBoxCenter(currentBox);\n const palmCenterNormalized = [palmCenter[0] / image.shape[2], palmCenter[1] / image.shape[1]];\n const rotatedImage = tf.image.rotateWithOffset(image, angle, 0, palmCenterNormalized);\n const rotationMatrix = util.buildRotationMatrix(-angle, palmCenter);\n const newBox = useFreshBox ? this.getBoxForPalmLandmarks(currentBox.palmLandmarks, rotationMatrix) : currentBox;\n const croppedInput = box.cutBoxFromImageAndResize(newBox, rotatedImage, [this.inputSize, this.inputSize]);\n const handImage = croppedInput.div(255);\n croppedInput.dispose();\n rotatedImage.dispose();\n const [confidence, keypoints] = await this.meshDetector.predict(handImage);\n handImage.dispose();\n const confidenceValue = confidence.dataSync()[0];\n confidence.dispose();\n if (confidenceValue >= config.hand.minConfidence) {\n const keypointsReshaped = tf.reshape(keypoints, [-1, 3]);\n const rawCoords = keypointsReshaped.arraySync();\n keypoints.dispose();\n keypointsReshaped.dispose();\n const coords = this.transformRawCoords(rawCoords, newBox, angle, rotationMatrix);\n const nextBoundingBox = this.getBoxForHandLandmarks(coords);\n this.storedBoxes[i] = nextBoundingBox;\n const result = {\n landmarks: coords,\n confidence: confidenceValue,\n box: {\n topLeft: nextBoundingBox.startPoint,\n bottomRight: nextBoundingBox.endPoint,\n },\n };\n hands.push(result);\n } else {\n this.storedBoxes[i] = null;\n }\n keypoints.dispose();\n } else {\n const enlarged = box.enlargeBox(box.squarifyBox(box.shiftBox(currentBox, HAND_BOX_SHIFT_VECTOR)), HAND_BOX_ENLARGE_FACTOR);\n const result = {\n confidence: currentBox.confidence,\n box: {\n topLeft: enlarged.startPoint,\n bottomRight: enlarged.endPoint,\n },\n };\n hands.push(result);\n }\n }\n this.storedBoxes = this.storedBoxes.filter((a) => a !== null);\n this.detectedHands = hands.length;\n return hands;\n }\n\n // eslint-disable-next-line class-methods-use-this\n calculateLandmarksBoundingBox(landmarks) {\n const xs = landmarks.map((d) => d[0]);\n const ys = landmarks.map((d) => d[1]);\n const startPoint = [Math.min(...xs), Math.min(...ys)];\n const endPoint = [Math.max(...xs), Math.max(...ys)];\n return { startPoint, endPoint };\n }\n}\n\nexports.HandPipeline = HandPipeline;\n", "exports.anchors = [\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.015625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.046875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.078125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.109375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.140625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.171875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.203125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.234375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.265625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.296875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.328125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.359375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.390625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.421875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.453125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.484375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.515625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.546875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.578125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.609375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.640625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.671875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.703125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.734375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.765625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.796875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.828125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.859375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.890625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.921875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.953125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.015625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.046875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.078125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.109375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.140625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.171875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.203125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.234375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.265625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.296875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.328125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.359375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.390625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.421875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.453125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.484375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.515625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.546875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.578125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.609375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.640625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.671875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.703125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.734375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.765625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.796875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.828125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.859375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.890625,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.921875,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.953125,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.984375,\n y_center: 0.984375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.03125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.09375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.15625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.21875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.28125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.34375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.40625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.46875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.53125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.59375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.65625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.71875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.78125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.84375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.90625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.03125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.09375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.15625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.21875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.28125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.34375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.40625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.46875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.53125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.59375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.65625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.71875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.78125,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.84375,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.90625,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.96875,\n y_center: 0.96875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.0625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.1875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.3125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.4375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.5625,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.6875,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.8125,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.0625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.1875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.3125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.4375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.5625,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.6875,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.8125,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n {\n w: 1,\n h: 1,\n x_center: 0.9375,\n y_center: 0.9375,\n },\n];\n", "/**\n * @license\n * Copyright 2020 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * https://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n// https://storage.googleapis.com/tfjs-models/demos/handpose/index.html\n\nimport * as tf from '../../dist/tfjs.esm.js';\nimport * as handdetector from './handdetector';\nimport * as pipeline from './handpipeline';\nimport * as anchors from './anchors';\n\nconst MESH_ANNOTATIONS = {\n thumb: [1, 2, 3, 4],\n indexFinger: [5, 6, 7, 8],\n middleFinger: [9, 10, 11, 12],\n ringFinger: [13, 14, 15, 16],\n pinky: [17, 18, 19, 20],\n palmBase: [0],\n};\n\nclass HandPose {\n constructor(pipe) {\n this.pipeline = pipe;\n }\n\n static getAnnotations() {\n return MESH_ANNOTATIONS;\n }\n\n async estimateHands(input, config) {\n const predictions = await this.pipeline.estimateHands(input, config);\n if (!predictions) return [];\n const hands = [];\n for (const prediction of predictions) {\n const annotations = {};\n if (prediction.landmarks) {\n for (const key of Object.keys(MESH_ANNOTATIONS)) {\n annotations[key] = MESH_ANNOTATIONS[key].map((index) => prediction.landmarks[index]);\n }\n }\n hands.push({\n confidence: prediction.confidence,\n box: prediction.box ? [\n prediction.box.topLeft[0],\n prediction.box.topLeft[1],\n prediction.box.bottomRight[0] - prediction.box.topLeft[0],\n prediction.box.bottomRight[1] - prediction.box.topLeft[1],\n ] : 0,\n landmarks: prediction.landmarks,\n annotations,\n });\n }\n return hands;\n }\n}\nexports.HandPose = HandPose;\n\nasync function load(config) {\n const [handDetectorModel, handPoseModel] = await Promise.all([\n tf.loadGraphModel(config.hand.detector.modelPath, { fromTFHub: config.hand.detector.modelPath.includes('tfhub.dev') }),\n tf.loadGraphModel(config.hand.skeleton.modelPath, { fromTFHub: config.hand.skeleton.modelPath.includes('tfhub.dev') }),\n ]);\n const detector = new handdetector.HandDetector(handDetectorModel, config.hand.inputSize, anchors.anchors);\n const pipe = new pipeline.HandPipeline(detector, handPoseModel, config.hand.inputSize);\n const handpose = new HandPose(pipe);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.hand.detector.modelPath.match(/\\/(.*)\\./)[1]}`);\n // eslint-disable-next-line no-console\n console.log(`Human: load model: ${config.hand.skeleton.modelPath.match(/\\/(.*)\\./)[1]}`);\n return handpose;\n}\nexports.load = load;\n", "exports.body = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const pose of res) {\n // raising hands\n const leftWrist = pose.keypoints.find((a) => (a.part === 'leftWrist'));\n const rightWrist = pose.keypoints.find((a) => (a.part === 'rightWrist'));\n const nose = pose.keypoints.find((a) => (a.part === 'nose'));\n if (nose && leftWrist && rightWrist && (leftWrist.position.y < nose.position.y) && (rightWrist.position.y < nose.position.y)) gestures.push('i give up');\n else if (nose && leftWrist && (leftWrist.position.y < nose.position.y)) gestures.push('raise left hand');\n else if (nose && rightWrist && (rightWrist.position.y < nose.position.y)) gestures.push('raise right hand');\n\n // leaning\n const leftShoulder = pose.keypoints.find((a) => (a.part === 'leftShoulder'));\n const rightShoulder = pose.keypoints.find((a) => (a.part === 'rightShoulder'));\n if (leftShoulder && rightShoulder) gestures.push(`leaning ${(leftShoulder.position.y > rightShoulder.position.y) ? 'left' : 'right'}`);\n }\n return gestures;\n};\n\nexports.face = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const face of res) {\n // if (face.annotations['rightCheek'] && face.annotations['leftCheek'] && (face.annotations['rightCheek'].length > 0) && (face.annotations['leftCheek'].length > 0)) {\n // gestures.push(`facing ${((face.annotations['rightCheek'][0][2] > 0) || (face.annotations['leftCheek'][0][2] < 0)) ? 'right' : 'left'}`);\n // }\n if (face.mesh && face.mesh.length > 0) {\n const eyeFacing = face.mesh[35][2] - face.mesh[263][2];\n if (Math.abs(eyeFacing) < 10) gestures.push('facing camera');\n else gestures.push(`facing ${eyeFacing < 0 ? 'right' : 'left'}`);\n const openLeft = Math.abs(face.mesh[374][1] - face.mesh[386][1]) / Math.abs(face.mesh[443][1] - face.mesh[450][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openLeft < 0.2) gestures.push('blink left eye');\n const openRight = Math.abs(face.mesh[145][1] - face.mesh[159][1]) / Math.abs(face.mesh[223][1] - face.mesh[230][1]); // center of eye inner lid y coord div center of wider eye border y coord\n if (openRight < 0.2) gestures.push('blink right eye');\n const mouthOpen = Math.min(100, 500 * Math.abs(face.mesh[13][1] - face.mesh[14][1]) / Math.abs(face.mesh[10][1] - face.mesh[152][1]));\n if (mouthOpen > 10) gestures.push(`mouth ${Math.trunc(mouthOpen)}% open`);\n const chinDepth = face.mesh[152][2];\n if (Math.abs(chinDepth) > 10) gestures.push(`head ${chinDepth < 0 ? 'up' : 'down'}`);\n }\n }\n return gestures;\n};\n\nexports.hand = (res) => {\n if (!res) return [];\n const gestures = [];\n for (const hand of res) {\n const fingers = [];\n for (const [finger, pos] of Object.entries(hand['annotations'])) {\n if (finger !== 'palmBase') fingers.push({ name: finger.toLowerCase(), position: pos[0] }); // get tip of each finger\n }\n if (fingers && fingers.length > 0) {\n const closest = fingers.reduce((best, a) => (best.position[2] < a.position[2] ? best : a));\n const highest = fingers.reduce((best, a) => (best.position[1] < a.position[1] ? best : a));\n gestures.push(`${closest.name} forward ${highest.name} up`);\n }\n }\n return gestures;\n};\n", "/* eslint-disable no-use-before-define */\n/*\nWebGLImageFilter - MIT Licensed\n2013, Dominic Szablewski - phoboslab.org\n\n*/\n\nconst WebGLProgram = function (gl, vertexSource, fragmentSource) {\n const _collect = function (source, prefix, collection) {\n const r = new RegExp('\\\\b' + prefix + ' \\\\w+ (\\\\w+)', 'ig');\n source.replace(r, (match, name) => {\n collection[name] = 0;\n return match;\n });\n };\n\n const _compile = function (source, type) {\n const shader = gl.createShader(type);\n gl.shaderSource(shader, source);\n gl.compileShader(shader);\n\n if (!gl.getShaderParameter(shader, gl.COMPILE_STATUS)) {\n throw new Error('Filter: GL compile failed', gl.getShaderInfoLog(shader));\n }\n return shader;\n };\n\n this.uniform = {};\n this.attribute = {};\n\n const _vsh = _compile(vertexSource, gl.VERTEX_SHADER);\n const _fsh = _compile(fragmentSource, gl.FRAGMENT_SHADER);\n\n this.id = gl.createProgram();\n gl.attachShader(this.id, _vsh);\n gl.attachShader(this.id, _fsh);\n gl.linkProgram(this.id);\n\n if (!gl.getProgramParameter(this.id, gl.LINK_STATUS)) {\n throw new Error('Filter: GL link failed', gl.getProgramInfoLog(this.id));\n }\n\n gl.useProgram(this.id);\n\n // Collect attributes\n _collect(vertexSource, 'attribute', this.attribute);\n for (const a in this.attribute) {\n this.attribute[a] = gl.getAttribLocation(this.id, a);\n }\n\n // Collect uniforms\n _collect(vertexSource, 'uniform', this.uniform);\n _collect(fragmentSource, 'uniform', this.uniform);\n for (const u in this.uniform) {\n this.uniform[u] = gl.getUniformLocation(this.id, u);\n }\n};\n\nconst WebGLImageFilter = function (params) {\n if (!params) params = { };\n let _drawCount = 0;\n let _sourceTexture = null;\n let _lastInChain = false;\n let _currentFramebufferIndex = -1;\n let _tempFramebuffers = [null, null];\n let _filterChain = [];\n let _width = -1;\n let _height = -1;\n let _vertexBuffer = null;\n let _currentProgram = null;\n const _canvas = params.canvas || document.createElement('canvas');\n\n // key is the shader program source, value is the compiled program\n const _shaderProgramCache = { };\n\n const gl = _canvas.getContext('webgl');\n if (!gl) throw new Error('Filter: getContext() failed');\n\n this.addFilter = function (name) {\n // eslint-disable-next-line prefer-rest-params\n const args = Array.prototype.slice.call(arguments, 1);\n const filter = _filter[name];\n\n _filterChain.push({ func: filter, args });\n };\n\n this.reset = function () {\n _filterChain = [];\n };\n\n this.apply = function (image) {\n _resize(image.width, image.height);\n _drawCount = 0;\n\n // Create the texture for the input image if we haven't yet\n if (!_sourceTexture) _sourceTexture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, _sourceTexture);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.NEAREST);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.NEAREST);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.UNSIGNED_BYTE, image);\n\n // No filters? Just draw\n if (_filterChain.length === 0) {\n // const program = _compileShader(SHADER.FRAGMENT_IDENTITY);\n _draw();\n return _canvas;\n }\n\n for (let i = 0; i < _filterChain.length; i++) {\n _lastInChain = (i === _filterChain.length - 1);\n const f = _filterChain[i];\n f.func.apply(this, f.args || []);\n }\n\n return _canvas;\n };\n\n const _resize = function (width, height) {\n // Same width/height? Nothing to do here\n if (width === _width && height === _height) { return; }\n\n _canvas.width = width;\n _width = width;\n _canvas.height = height;\n _height = height;\n\n // Create the context if we don't have it yet\n if (!_vertexBuffer) {\n // Create the vertex buffer for the two triangles [x, y, u, v] * 6\n const vertices = new Float32Array([\n -1, -1, 0, 1, 1, -1, 1, 1, -1, 1, 0, 0,\n -1, 1, 0, 0, 1, -1, 1, 1, 1, 1, 1, 0,\n ]);\n // eslint-disable-next-line no-unused-expressions\n (_vertexBuffer = gl.createBuffer(), gl.bindBuffer(gl.ARRAY_BUFFER, _vertexBuffer));\n gl.bufferData(gl.ARRAY_BUFFER, vertices, gl.STATIC_DRAW);\n\n // Note sure if this is a good idea; at least it makes texture loading\n // in Ejecta instant.\n gl.pixelStorei(gl.UNPACK_PREMULTIPLY_ALPHA_WEBGL, true);\n }\n\n gl.viewport(0, 0, _width, _height);\n\n // Delete old temp framebuffers\n _tempFramebuffers = [null, null];\n };\n\n const _getTempFramebuffer = function (index) {\n _tempFramebuffers[index] = _tempFramebuffers[index]\n || _createFramebufferTexture(_width, _height);\n\n return _tempFramebuffers[index];\n };\n\n const _createFramebufferTexture = function (width, height) {\n const fbo = gl.createFramebuffer();\n gl.bindFramebuffer(gl.FRAMEBUFFER, fbo);\n\n const renderbuffer = gl.createRenderbuffer();\n gl.bindRenderbuffer(gl.RENDERBUFFER, renderbuffer);\n\n const texture = gl.createTexture();\n gl.bindTexture(gl.TEXTURE_2D, texture);\n gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, width, height, 0, gl.RGBA, gl.UNSIGNED_BYTE, null);\n\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MAG_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_MIN_FILTER, gl.LINEAR);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_S, gl.CLAMP_TO_EDGE);\n gl.texParameteri(gl.TEXTURE_2D, gl.TEXTURE_WRAP_T, gl.CLAMP_TO_EDGE);\n\n gl.framebufferTexture2D(gl.FRAMEBUFFER, gl.COLOR_ATTACHMENT0, gl.TEXTURE_2D, texture, 0);\n\n gl.bindTexture(gl.TEXTURE_2D, null);\n gl.bindFramebuffer(gl.FRAMEBUFFER, null);\n\n return { fbo, texture };\n };\n\n const _draw = function (flags) {\n let source = null;\n let target = null;\n let flipY = false;\n\n // Set up the source\n if (_drawCount === 0) {\n // First draw call - use the source texture\n source = _sourceTexture;\n } else {\n // All following draw calls use the temp buffer last drawn to\n source = _getTempFramebuffer(_currentFramebufferIndex).texture;\n }\n _drawCount++;\n\n // Set up the target\n if (_lastInChain && !(flags & DRAW.INTERMEDIATE)) {\n // Last filter in our chain - draw directly to the WebGL Canvas. We may\n // also have to flip the image vertically now\n target = null;\n flipY = _drawCount % 2 === 0;\n } else {\n // Intermediate draw call - get a temp buffer to draw to\n _currentFramebufferIndex = (_currentFramebufferIndex + 1) % 2;\n target = _getTempFramebuffer(_currentFramebufferIndex).fbo;\n }\n\n // Bind the source and target and draw the two triangles\n gl.bindTexture(gl.TEXTURE_2D, source);\n gl.bindFramebuffer(gl.FRAMEBUFFER, target);\n\n gl.uniform1f(_currentProgram.uniform.flipY, (flipY ? -1 : 1));\n gl.drawArrays(gl.TRIANGLES, 0, 6);\n };\n\n const _compileShader = function (fragmentSource) {\n if (_shaderProgramCache[fragmentSource]) {\n _currentProgram = _shaderProgramCache[fragmentSource];\n gl.useProgram(_currentProgram.id);\n return _currentProgram;\n }\n\n // Compile shaders\n _currentProgram = new WebGLProgram(gl, SHADER.VERTEX_IDENTITY, fragmentSource);\n\n const floatSize = Float32Array.BYTES_PER_ELEMENT;\n const vertSize = 4 * floatSize;\n gl.enableVertexAttribArray(_currentProgram.attribute.pos);\n gl.vertexAttribPointer(_currentProgram.attribute.pos, 2, gl.FLOAT, false, vertSize, 0 * floatSize);\n gl.enableVertexAttribArray(_currentProgram.attribute.uv);\n gl.vertexAttribPointer(_currentProgram.attribute.uv, 2, gl.FLOAT, false, vertSize, 2 * floatSize);\n\n _shaderProgramCache[fragmentSource] = _currentProgram;\n return _currentProgram;\n };\n\n let DRAW = { INTERMEDIATE: 1 };\n\n let SHADER = {};\n SHADER.VERTEX_IDENTITY = [\n 'precision highp float;',\n 'attribute vec2 pos;',\n 'attribute vec2 uv;',\n 'varying vec2 vUv;',\n 'uniform float flipY;',\n\n 'void main(void) {',\n 'vUv = uv;',\n 'gl_Position = vec4(pos.x, pos.y*flipY, 0.0, 1.);',\n '}',\n ].join('\\n');\n\n SHADER.FRAGMENT_IDENTITY = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n\n 'void main(void) {',\n 'gl_FragColor = texture2D(texture, vUv);',\n '}',\n ].join('\\n');\n\n let _filter = {};\n\n // -------------------------------------------------------------------------\n // Color Matrix Filter\n\n _filter.colorMatrix = function (matrix) {\n // Create a Float32 Array and normalize the offset component to 0-1\n const m = new Float32Array(matrix);\n m[4] /= 255;\n m[9] /= 255;\n m[14] /= 255;\n m[19] /= 255;\n\n // Can we ignore the alpha value? Makes things a bit faster.\n const shader = (m[18] === 1 && m[3] === 0 && m[8] === 0 && m[13] === 0 && m[15] === 0 && m[16] === 0 && m[17] === 0 && m[19] === 0)\n ? _filter.colorMatrix.SHADER.WITHOUT_ALPHA\n : _filter.colorMatrix.SHADER.WITH_ALPHA;\n\n const program = _compileShader(shader);\n gl.uniform1fv(program.uniform.m, m);\n _draw();\n };\n\n _filter.colorMatrix.SHADER = {};\n _filter.colorMatrix.SHADER.WITH_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[3] * c.a + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[8] * c.a + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[13] * c.a + m[14];',\n 'gl_FragColor.a = m[15] * c.r + m[16] * c.g + m[17] * c.b + m[18] * c.a + m[19];',\n '}',\n ].join('\\n');\n _filter.colorMatrix.SHADER.WITHOUT_ALPHA = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform float m[20];',\n\n 'void main(void) {',\n 'vec4 c = texture2D(texture, vUv);',\n 'gl_FragColor.r = m[0] * c.r + m[1] * c.g + m[2] * c.b + m[4];',\n 'gl_FragColor.g = m[5] * c.r + m[6] * c.g + m[7] * c.b + m[9];',\n 'gl_FragColor.b = m[10] * c.r + m[11] * c.g + m[12] * c.b + m[14];',\n 'gl_FragColor.a = c.a;',\n '}',\n ].join('\\n');\n\n _filter.brightness = function (brightness) {\n const b = (brightness || 0) + 1;\n _filter.colorMatrix([\n b, 0, 0, 0, 0,\n 0, b, 0, 0, 0,\n 0, 0, b, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.saturation = function (amount) {\n const x = (amount || 0) * 2 / 3 + 1;\n const y = ((x - 1) * -0.5);\n _filter.colorMatrix([\n x, y, y, 0, 0,\n y, x, y, 0, 0,\n y, y, x, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturate = function () {\n _filter.saturation(-1);\n };\n\n _filter.contrast = function (amount) {\n const v = (amount || 0) + 1;\n const o = -128 * (v - 1);\n\n _filter.colorMatrix([\n v, 0, 0, 0, o,\n 0, v, 0, 0, o,\n 0, 0, v, 0, o,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.negative = function () {\n _filter.contrast(-2);\n };\n\n _filter.hue = function (rotation) {\n rotation = (rotation || 0) / 180 * Math.PI;\n const cos = Math.cos(rotation);\n const sin = Math.sin(rotation);\n const lumR = 0.213;\n const lumG = 0.715;\n const lumB = 0.072;\n\n _filter.colorMatrix([\n lumR + cos * (1 - lumR) + sin * (-lumR), lumG + cos * (-lumG) + sin * (-lumG), lumB + cos * (-lumB) + sin * (1 - lumB), 0, 0,\n lumR + cos * (-lumR) + sin * (0.143), lumG + cos * (1 - lumG) + sin * (0.140), lumB + cos * (-lumB) + sin * (-0.283), 0, 0,\n lumR + cos * (-lumR) + sin * (-(1 - lumR)), lumG + cos * (-lumG) + sin * (lumG), lumB + cos * (1 - lumB) + sin * (lumB), 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.desaturateLuminance = function () {\n _filter.colorMatrix([\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0.2764723, 0.9297080, 0.0938197, 0, -37.1,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.sepia = function () {\n _filter.colorMatrix([\n 0.393, 0.7689999, 0.18899999, 0, 0,\n 0.349, 0.6859999, 0.16799999, 0, 0,\n 0.272, 0.5339999, 0.13099999, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.brownie = function () {\n _filter.colorMatrix([\n 0.5997023498159715, 0.34553243048391263, -0.2708298674538042, 0, 47.43192855600873,\n -0.037703249837783157, 0.8609577587992641, 0.15059552388459913, 0, -36.96841498319127,\n 0.24113635128153335, -0.07441037908422492, 0.44972182064877153, 0, -7.562075277591283,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.vintagePinhole = function () {\n _filter.colorMatrix([\n 0.6279345635605994, 0.3202183420819367, -0.03965408211312453, 0, 9.651285835294123,\n 0.02578397704808868, 0.6441188644374771, 0.03259127616149294, 0, 7.462829176470591,\n 0.0466055556782719, -0.0851232987247891, 0.5241648018700465, 0, 5.159190588235296,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.kodachrome = function () {\n _filter.colorMatrix([\n 1.1285582396593525, -0.3967382283601348, -0.03992559172921793, 0, 63.72958762196502,\n -0.16404339962244616, 1.0835251566291304, -0.05498805115633132, 0, 24.732407896706203,\n -0.16786010706155763, -0.5603416277695248, 1.6014850761964943, 0, 35.62982807460946,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.technicolor = function () {\n _filter.colorMatrix([\n 1.9125277891456083, -0.8545344976951645, -0.09155508482755585, 0, 11.793603434377337,\n -0.3087833385928097, 1.7658908555458428, -0.10601743074722245, 0, -70.35205161461398,\n -0.231103377548616, -0.7501899197440212, 1.847597816108189, 0, 30.950940869491138,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.polaroid = function () {\n _filter.colorMatrix([\n 1.438, -0.062, -0.062, 0, 0,\n -0.122, 1.378, -0.122, 0, 0,\n -0.016, -0.016, 1.483, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n _filter.shiftToBGR = function () {\n _filter.colorMatrix([\n 0, 0, 1, 0, 0,\n 0, 1, 0, 0, 0,\n 1, 0, 0, 0, 0,\n 0, 0, 0, 1, 0,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Convolution Filter\n\n _filter.convolution = function (matrix) {\n const m = new Float32Array(matrix);\n const pixelSizeX = 1 / _width;\n const pixelSizeY = 1 / _height;\n\n const program = _compileShader(_filter.convolution.SHADER);\n gl.uniform1fv(program.uniform.m, m);\n gl.uniform2f(program.uniform.px, pixelSizeX, pixelSizeY);\n _draw();\n };\n\n _filter.convolution.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n 'uniform float m[9];',\n\n 'void main(void) {',\n 'vec4 c11 = texture2D(texture, vUv - px);', // top left\n 'vec4 c12 = texture2D(texture, vec2(vUv.x, vUv.y - px.y));', // top center\n 'vec4 c13 = texture2D(texture, vec2(vUv.x + px.x, vUv.y - px.y));', // top right\n\n 'vec4 c21 = texture2D(texture, vec2(vUv.x - px.x, vUv.y) );', // mid left\n 'vec4 c22 = texture2D(texture, vUv);', // mid center\n 'vec4 c23 = texture2D(texture, vec2(vUv.x + px.x, vUv.y) );', // mid right\n\n 'vec4 c31 = texture2D(texture, vec2(vUv.x - px.x, vUv.y + px.y) );', // bottom left\n 'vec4 c32 = texture2D(texture, vec2(vUv.x, vUv.y + px.y) );', // bottom center\n 'vec4 c33 = texture2D(texture, vUv + px );', // bottom right\n\n 'gl_FragColor = ',\n 'c11 * m[0] + c12 * m[1] + c22 * m[2] +',\n 'c21 * m[3] + c22 * m[4] + c23 * m[5] +',\n 'c31 * m[6] + c32 * m[7] + c33 * m[8];',\n 'gl_FragColor.a = c22.a;',\n '}',\n ].join('\\n');\n\n _filter.detectEdges = function () {\n _filter.convolution.call(this, [\n 0, 1, 0,\n 1, -4, 1,\n 0, 1, 0,\n ]);\n };\n\n _filter.sobelX = function () {\n _filter.convolution.call(this, [\n -1, 0, 1,\n -2, 0, 2,\n -1, 0, 1,\n ]);\n };\n\n _filter.sobelY = function () {\n _filter.convolution.call(this, [\n -1, -2, -1,\n 0, 0, 0,\n 1, 2, 1,\n ]);\n };\n\n _filter.sharpen = function (amount) {\n const a = amount || 1;\n _filter.convolution.call(this, [\n 0, -1 * a, 0,\n -1 * a, 1 + 4 * a, -1 * a,\n 0, -1 * a, 0,\n ]);\n };\n\n _filter.emboss = function (size) {\n const s = size || 1;\n _filter.convolution.call(this, [\n -2 * s, -1 * s, 0,\n -1 * s, 1, 1 * s,\n 0, 1 * s, 2 * s,\n ]);\n };\n\n // -------------------------------------------------------------------------\n // Blur Filter\n\n _filter.blur = function (size) {\n const blurSizeX = (size / 7) / _width;\n const blurSizeY = (size / 7) / _height;\n\n const program = _compileShader(_filter.blur.SHADER);\n\n // Vertical\n gl.uniform2f(program.uniform.px, 0, blurSizeY);\n _draw(DRAW.INTERMEDIATE);\n\n // Horizontal\n gl.uniform2f(program.uniform.px, blurSizeX, 0);\n _draw();\n };\n\n _filter.blur.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform sampler2D texture;',\n 'uniform vec2 px;',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-7.0*px.x, -7.0*px.y))*0.0044299121055113265;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-6.0*px.x, -6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-5.0*px.x, -5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-4.0*px.x, -4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-3.0*px.x, -3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-2.0*px.x, -2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2(-1.0*px.x, -1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv )*0.159576912161;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 1.0*px.x, 1.0*px.y))*0.147308056121;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 2.0*px.x, 2.0*px.y))*0.115876621105;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 3.0*px.x, 3.0*px.y))*0.0776744219933;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 4.0*px.x, 4.0*px.y))*0.0443683338718;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 5.0*px.x, 5.0*px.y))*0.0215963866053;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 6.0*px.x, 6.0*px.y))*0.00895781211794;',\n 'gl_FragColor += texture2D(texture, vUv + vec2( 7.0*px.x, 7.0*px.y))*0.0044299121055113265;',\n '}',\n ].join('\\n');\n\n // -------------------------------------------------------------------------\n // Pixelate Filter\n\n _filter.pixelate = function (size) {\n const blurSizeX = (size) / _width;\n const blurSizeY = (size) / _height;\n\n const program = _compileShader(_filter.pixelate.SHADER);\n\n // Horizontal\n gl.uniform2f(program.uniform.size, blurSizeX, blurSizeY);\n _draw();\n };\n\n _filter.pixelate.SHADER = [\n 'precision highp float;',\n 'varying vec2 vUv;',\n 'uniform vec2 size;',\n 'uniform sampler2D texture;',\n\n 'vec2 pixelate(vec2 coord, vec2 size) {',\n 'return floor( coord / size ) * size;',\n '}',\n\n 'void main(void) {',\n 'gl_FragColor = vec4(0.0);',\n 'vec2 coord = pixelate(vUv, size);',\n 'gl_FragColor += texture2D(texture, coord);',\n '}',\n ].join('\\n');\n};\n\nexports.Canvas = WebGLImageFilter;\n", "import * as tf from '../dist/tfjs.esm.js';\nimport * as fxImage from './imagefx.js';\n\n// internal temp canvases\nlet inCanvas = null;\nlet outCanvas = null;\n\n// process input image and return tensor\n// input can be tensor, imagedata, htmlimageelement, htmlvideoelement\n// input is resized and run through imagefx filter\nfunction process(input, config) {\n let tensor;\n if (input instanceof tf.Tensor) {\n tensor = tf.clone(input);\n } else {\n const originalWidth = input.naturalWidth || input.videoWidth || input.width || (input.shape && (input.shape[1] > 0));\n const originalHeight = input.naturalHeight || input.videoHeight || input.height || (input.shape && (input.shape[2] > 0));\n let targetWidth = originalWidth;\n let targetHeight = originalHeight;\n if (config.filter.width > 0) targetWidth = config.filter.width;\n else if (config.filter.height > 0) targetWidth = originalWidth * (config.filter.height / originalHeight);\n if (config.filter.height > 0) targetHeight = config.filter.height;\n else if (config.filter.width > 0) targetHeight = originalHeight * (config.filter.width / originalWidth);\n if (!targetWidth || !targetHeight) {\n // eslint-disable-next-line no-console\n console.log('Human: invalid input', input);\n return null;\n }\n if (!inCanvas || (inCanvas.width !== targetWidth) || (inCanvas.height !== targetHeight)) {\n inCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n if (inCanvas.width !== targetWidth) inCanvas.width = targetWidth;\n if (inCanvas.height !== targetHeight) inCanvas.height = targetHeight;\n }\n const ctx = inCanvas.getContext('2d');\n if (input instanceof ImageData) ctx.putImageData(input, 0, 0);\n else ctx.drawImage(input, 0, 0, originalWidth, originalHeight, 0, 0, inCanvas.width, inCanvas.height);\n if (config.filter.enabled) {\n if (!this.fx || !outCanvas || (inCanvas.width !== outCanvas.width) || (inCanvas.height !== outCanvas.height)) {\n outCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(inCanvas.width, inCanvas.height) : document.createElement('canvas');\n if (outCanvas.width !== inCanvas.width) outCanvas.width = inCanvas.width;\n if (outCanvas.height !== inCanvas.height) outCanvas.height = inCanvas.height;\n this.fx = tf.ENV.flags.IS_BROWSER ? new fxImage.Canvas({ canvas: outCanvas }) : null; // && (typeof document !== 'undefined')\n }\n this.fx.reset();\n this.fx.addFilter('brightness', config.filter.brightness); // must have at least one filter enabled\n if (config.filter.contrast !== 0) this.fx.addFilter('contrast', config.filter.contrast);\n if (config.filter.sharpness !== 0) this.fx.addFilter('sharpen', config.filter.sharpness);\n if (config.filter.blur !== 0) this.fx.addFilter('blur', config.filter.blur);\n if (config.filter.saturation !== 0) this.fx.addFilter('saturation', config.filter.saturation);\n if (config.filter.hue !== 0) this.fx.addFilter('hue', config.filter.hue);\n if (config.filter.negative) this.fx.addFilter('negative');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.vintage) this.fx.addFilter('brownie');\n if (config.filter.sepia) this.fx.addFilter('sepia');\n if (config.filter.kodachrome) this.fx.addFilter('kodachrome');\n if (config.filter.technicolor) this.fx.addFilter('technicolor');\n if (config.filter.polaroid) this.fx.addFilter('polaroid');\n if (config.filter.pixelate !== 0) this.fx.addFilter('pixelate', config.filter.pixelate);\n this.fx.apply(inCanvas);\n // read pixel data\n // const gl = outCanvas.getContext('webgl');\n const gl = false;\n if (gl) {\n const glBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 4);\n const pixBuffer = new Uint8Array(outCanvas.width * outCanvas.height * 3);\n gl.readPixels(0, 0, outCanvas.width, outCanvas.height, gl.RGBA, gl.UNSIGNED_BYTE, glBuffer);\n // gl returns rbga while we only need rgb, so discarding alpha channel\n // gl returns starting point as lower left, so need to invert vertical\n let i = 0;\n for (let y = outCanvas.height - 1; y >= 0; y--) {\n for (let x = 0; x < outCanvas.width; x++) {\n const index = (x + y * outCanvas.width) * 4;\n pixBuffer[i++] = glBuffer[index + 0];\n pixBuffer[i++] = glBuffer[index + 1];\n pixBuffer[i++] = glBuffer[index + 2];\n }\n }\n outCanvas.data = pixBuffer;\n }\n } else {\n outCanvas = inCanvas;\n }\n let pixels;\n if (outCanvas.data) {\n const shape = [outCanvas.height, outCanvas.width, 3];\n pixels = tf.tensor3d(outCanvas.data, shape, 'int32');\n } else if ((config.backend === 'webgl') || (outCanvas instanceof ImageData)) {\n // tf kernel-optimized method to get imagedata, also if input is imagedata, just use it\n pixels = tf.browser.fromPixels(outCanvas);\n } else {\n // cpu and wasm kernel does not implement efficient fromPixels method nor we can use canvas as-is, so we do a silly one more canvas\n const tempCanvas = (typeof OffscreenCanvas !== 'undefined') ? new OffscreenCanvas(targetWidth, targetHeight) : document.createElement('canvas');\n tempCanvas.width = targetWidth;\n tempCanvas.height = targetHeight;\n const tempCtx = tempCanvas.getContext('2d');\n tempCtx.drawImage(outCanvas, 0, 0);\n const data = tempCtx.getImageData(0, 0, targetWidth, targetHeight);\n pixels = tf.browser.fromPixels(data);\n }\n const casted = pixels.toFloat();\n tensor = casted.expandDims(0);\n pixels.dispose();\n casted.dispose();\n }\n return { tensor, canvas: config.filter.return ? outCanvas : null };\n}\n\nexports.process = process;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = String(data);\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2019 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (global, pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\n\nvar width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n} else {\n // When included as a plain script, set up Math.seedrandom global.\n math['seed' + rngname] = seedrandom;\n}\n\n\n// End anonymous scope, and pass initial values.\n})(\n // global: `self` in browsers (including strict mode and web workers),\n // otherwise `this` in Node and other environments\n (typeof self !== 'undefined') ? self : this,\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "", "", "", "\nvar WasmBackendModuleThreadedSimd = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModuleThreadedSimd) {\n WasmBackendModuleThreadedSimd = WasmBackendModuleThreadedSimd || {};\n\nfunction GROWABLE_HEAP_I8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP8}function GROWABLE_HEAP_U8(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU8}function GROWABLE_HEAP_I32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAP32}function GROWABLE_HEAP_U32(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPU32}function GROWABLE_HEAP_F64(){if(wasmMemory.buffer!=buffer){updateGlobalBufferAndViews(wasmMemory.buffer)}return HEAPF64}var Module=typeof WasmBackendModuleThreadedSimd!==\"undefined\"?WasmBackendModuleThreadedSimd:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var ENVIRONMENT_IS_PTHREAD=Module[\"ENVIRONMENT_IS_PTHREAD\"]||false;if(ENVIRONMENT_IS_PTHREAD){buffer=Module[\"buffer\"];DYNAMIC_BASE=Module[\"DYNAMIC_BASE\"];DYNAMICTOP_PTR=Module[\"DYNAMICTOP_PTR\"]}var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"};var nodeWorkerThreads;try{nodeWorkerThreads=require(\"worker_threads\")}catch(e){console.error('The \"worker_threads\" module is not supported in this node.js build - perhaps a newer version is needed?');throw e}Worker=nodeWorkerThreads.Worker}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}if(ENVIRONMENT_IS_NODE){read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret}}else{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}if(ENVIRONMENT_IS_NODE){if(typeof performance===\"undefined\"){performance=require(\"perf_hooks\").performance}}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var Atomics_load=Atomics.load;var Atomics_store=Atomics.store;var Atomics_compareExchange=Atomics.compareExchange;var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":165,\"maximum\":165+0,\"element\":\"anyfunc\"});var wasmModule;var threadInfoStruct=0;var selfThreadId=0;var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx)){var u0=heap[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heap[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heap[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heap[idx++]&63}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(GROWABLE_HEAP_U8(),ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,GROWABLE_HEAP_U8(),outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127)++len;else if(u<=2047)len+=2;else if(u<=65535)len+=3;else len+=4}return len}function writeArrayToMemory(array,buffer){GROWABLE_HEAP_I8().set(array,buffer)}var WASM_PAGE_SIZE=65536;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var STACK_BASE=5256384,STACKTOP=STACK_BASE,STACK_MAX=13504,DYNAMIC_BASE=5256384,DYNAMICTOP_PTR=12576;if(ENVIRONMENT_IS_PTHREAD){}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;if(ENVIRONMENT_IS_PTHREAD){wasmMemory=Module[\"wasmMemory\"];buffer=Module[\"buffer\"]}else{if(Module[\"wasmMemory\"]){wasmMemory=Module[\"wasmMemory\"]}else{wasmMemory=new WebAssembly.Memory({\"initial\":INITIAL_INITIAL_MEMORY/WASM_PAGE_SIZE,\"maximum\":2147483648/WASM_PAGE_SIZE,\"shared\":true});if(!(wasmMemory.buffer instanceof SharedArrayBuffer)){err(\"requested a shared WebAssembly.Memory but the returned buffer is not a SharedArrayBuffer, indicating that while the browser has SharedArrayBuffer it does not have WebAssembly threads support - you may need to set a flag\");if(ENVIRONMENT_IS_NODE){console.log(\"(on node you may need: --experimental-wasm-threads --experimental-wasm-bulk-memory and also use a recent version)\")}throw Error(\"bad memory\")}}}if(wasmMemory){buffer=wasmMemory.buffer}INITIAL_INITIAL_MEMORY=buffer.byteLength;updateGlobalBufferAndViews(buffer);if(!ENVIRONMENT_IS_PTHREAD){GROWABLE_HEAP_I32()[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;if(ENVIRONMENT_IS_PTHREAD)runtimeInitialized=true;function preRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){if(ENVIRONMENT_IS_PTHREAD)return;callRuntimeCallbacks(__ATMAIN__)}function postRun(){if(ENVIRONMENT_IS_PTHREAD)return;if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){assert(!ENVIRONMENT_IS_PTHREAD,\"addRunDependency cannot be used in a pthread worker\");runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}if(ENVIRONMENT_IS_PTHREAD)console.error(\"Pthread aborting at \"+(new Error).stack);what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm-threaded-simd.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmModule=module;if(!ENVIRONMENT_IS_PTHREAD){var numWorkersToLoad=PThread.unusedWorkers.length;PThread.unusedWorkers.forEach(function(w){PThread.loadWasmModuleToWorker(w,function(){if(!--numWorkersToLoad)removeRunDependency(\"wasm-instantiate\")})})}}if(!ENVIRONMENT_IS_PTHREAD){addRunDependency(\"wasm-instantiate\")}function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"],output[\"module\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}var ASM_CONSTS={};function initPthreadsJS(){PThread.initRuntime()}if(!ENVIRONMENT_IS_PTHREAD)__ATINIT__.push({func:function(){___wasm_call_ctors()}});var __pthread_ptr=0;var __pthread_is_main_runtime_thread=0;var __pthread_is_main_browser_thread=0;function __register_pthread_ptr(pthreadPtr,isMainBrowserThread,isMainRuntimeThread){pthreadPtr=pthreadPtr|0;isMainBrowserThread=isMainBrowserThread|0;isMainRuntimeThread=isMainRuntimeThread|0;__pthread_ptr=pthreadPtr;__pthread_is_main_browser_thread=isMainBrowserThread;__pthread_is_main_runtime_thread=isMainRuntimeThread}Module[\"__register_pthread_ptr\"]=__register_pthread_ptr;var ERRNO_CODES={EPERM:63,ENOENT:44,ESRCH:71,EINTR:27,EIO:29,ENXIO:60,E2BIG:1,ENOEXEC:45,EBADF:8,ECHILD:12,EAGAIN:6,EWOULDBLOCK:6,ENOMEM:48,EACCES:2,EFAULT:21,ENOTBLK:105,EBUSY:10,EEXIST:20,EXDEV:75,ENODEV:43,ENOTDIR:54,EISDIR:31,EINVAL:28,ENFILE:41,EMFILE:33,ENOTTY:59,ETXTBSY:74,EFBIG:22,ENOSPC:51,ESPIPE:70,EROFS:69,EMLINK:34,EPIPE:64,EDOM:18,ERANGE:68,ENOMSG:49,EIDRM:24,ECHRNG:106,EL2NSYNC:156,EL3HLT:107,EL3RST:108,ELNRNG:109,EUNATCH:110,ENOCSI:111,EL2HLT:112,EDEADLK:16,ENOLCK:46,EBADE:113,EBADR:114,EXFULL:115,ENOANO:104,EBADRQC:103,EBADSLT:102,EDEADLOCK:16,EBFONT:101,ENOSTR:100,ENODATA:116,ETIME:117,ENOSR:118,ENONET:119,ENOPKG:120,EREMOTE:121,ENOLINK:47,EADV:122,ESRMNT:123,ECOMM:124,EPROTO:65,EMULTIHOP:36,EDOTDOT:125,EBADMSG:9,ENOTUNIQ:126,EBADFD:127,EREMCHG:128,ELIBACC:129,ELIBBAD:130,ELIBSCN:131,ELIBMAX:132,ELIBEXEC:133,ENOSYS:52,ENOTEMPTY:55,ENAMETOOLONG:37,ELOOP:32,EOPNOTSUPP:138,EPFNOSUPPORT:139,ECONNRESET:15,ENOBUFS:42,EAFNOSUPPORT:5,EPROTOTYPE:67,ENOTSOCK:57,ENOPROTOOPT:50,ESHUTDOWN:140,ECONNREFUSED:14,EADDRINUSE:3,ECONNABORTED:13,ENETUNREACH:40,ENETDOWN:38,ETIMEDOUT:73,EHOSTDOWN:142,EHOSTUNREACH:23,EINPROGRESS:26,EALREADY:7,EDESTADDRREQ:17,EMSGSIZE:35,EPROTONOSUPPORT:66,ESOCKTNOSUPPORT:137,EADDRNOTAVAIL:4,ENETRESET:39,EISCONN:30,ENOTCONN:53,ETOOMANYREFS:141,EUSERS:136,EDQUOT:19,ESTALE:72,ENOTSUP:138,ENOMEDIUM:148,EILSEQ:25,EOVERFLOW:61,ECANCELED:11,ENOTRECOVERABLE:56,EOWNERDEAD:62,ESTRPIPE:135};var __main_thread_futex_wait_address=13488;function _emscripten_futex_wake(addr,count){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0||count<0)return-28;if(count==0)return 0;if(count>=2147483647)count=Infinity;var mainThreadWaitAddress=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2);var mainThreadWoken=0;if(mainThreadWaitAddress==addr){var loadedAddr=Atomics.compareExchange(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,mainThreadWaitAddress,0);if(loadedAddr==mainThreadWaitAddress){--count;mainThreadWoken=1;if(count<=0)return 1}}var ret=Atomics.notify(GROWABLE_HEAP_I32(),addr>>2,count);if(ret>=0)return ret+mainThreadWoken;throw\"Atomics.notify returned an unexpected value \"+ret}Module[\"_emscripten_futex_wake\"]=_emscripten_futex_wake;function __kill_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _kill_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _kill_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];pthread.worker.terminate();PThread.freeThreadData(pthread);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(pthread.worker),1);pthread.worker.pthread=undefined}function __cancel_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cancel_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cancel_thread!\";var pthread=PThread.pthreads[pthread_ptr];pthread.worker.postMessage({\"cmd\":\"cancel\"})}function __cleanup_thread(pthread_ptr){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _cleanup_thread() can only ever be called from main application thread!\";if(!pthread_ptr)throw\"Internal Error! Null pthread_ptr in _cleanup_thread!\";GROWABLE_HEAP_I32()[pthread_ptr+12>>2]=0;var pthread=PThread.pthreads[pthread_ptr];if(pthread){var worker=pthread.worker;PThread.returnWorkerToPool(worker)}}var PThread={MAIN_THREAD_ID:1,mainThreadInfo:{schedPolicy:0,schedPrio:0},unusedWorkers:[],runningWorkers:[],initRuntime:function(){__register_pthread_ptr(PThread.mainThreadBlock,!ENVIRONMENT_IS_WORKER,1);_emscripten_register_main_browser_thread_id(PThread.mainThreadBlock)},initMainThreadBlock:function(){var pthreadPoolSize=8;for(var i=0;i>2]=PThread.mainThreadBlock;var headPtr=PThread.mainThreadBlock+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var tlsMemory=12976;for(var i=0;i<128;++i)GROWABLE_HEAP_U32()[tlsMemory/4+i]=0;Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+104>>2,tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+40>>2,PThread.mainThreadBlock);Atomics.store(GROWABLE_HEAP_U32(),PThread.mainThreadBlock+44>>2,42)},initWorker:function(){},pthreads:{},exitHandlers:null,setThreadStatus:function(){},runExitHandlers:function(){if(PThread.exitHandlers!==null){while(PThread.exitHandlers.length>0){PThread.exitHandlers.pop()()}PThread.exitHandlers=null}if(ENVIRONMENT_IS_PTHREAD&&threadInfoStruct)___pthread_tsd_run_dtors()},threadExit:function(exitCode){var tb=_pthread_self();if(tb){Atomics.store(GROWABLE_HEAP_U32(),tb+4>>2,exitCode);Atomics.store(GROWABLE_HEAP_U32(),tb+0>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+60>>2,1);Atomics.store(GROWABLE_HEAP_U32(),tb+64>>2,0);PThread.runExitHandlers();_emscripten_futex_wake(tb+0,2147483647);__register_pthread_ptr(0,0,0);threadInfoStruct=0;if(ENVIRONMENT_IS_PTHREAD){postMessage({\"cmd\":\"exit\"})}}},threadCancel:function(){PThread.runExitHandlers();Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+4>>2,-1);Atomics.store(GROWABLE_HEAP_U32(),threadInfoStruct+0>>2,1);_emscripten_futex_wake(threadInfoStruct+0,2147483647);threadInfoStruct=selfThreadId=0;__register_pthread_ptr(0,0,0);postMessage({\"cmd\":\"cancelDone\"})},terminateAllThreads:function(){for(var t in PThread.pthreads){var pthread=PThread.pthreads[t];if(pthread&&pthread.worker){PThread.returnWorkerToPool(pthread.worker)}}PThread.pthreads={};for(var i=0;i>2];GROWABLE_HEAP_I32()[pthread.threadInfoStruct+104>>2]=0;_free(tlsMemory);_free(pthread.threadInfoStruct)}pthread.threadInfoStruct=0;if(pthread.allocatedOwnStack&&pthread.stackBase)_free(pthread.stackBase);pthread.stackBase=0;if(pthread.worker)pthread.worker.pthread=null},returnWorkerToPool:function(worker){delete PThread.pthreads[worker.pthread.thread];PThread.unusedWorkers.push(worker);PThread.runningWorkers.splice(PThread.runningWorkers.indexOf(worker),1);PThread.freeThreadData(worker.pthread);worker.pthread=undefined},receiveObjectTransfer:function(data){},loadWasmModuleToWorker:function(worker,onFinishedLoading){worker.onmessage=function(e){var d=e[\"data\"];var cmd=d[\"cmd\"];if(worker.pthread)PThread.currentProxiedOperationCallerThread=worker.pthread.threadInfoStruct;if(d[\"targetThread\"]&&d[\"targetThread\"]!=_pthread_self()){var thread=PThread.pthreads[d.targetThread];if(thread){thread.worker.postMessage(e.data,d[\"transferList\"])}else{console.error('Internal error! Worker sent a message \"'+cmd+'\" to target pthread '+d[\"targetThread\"]+\", but that thread no longer exists!\")}PThread.currentProxiedOperationCallerThread=undefined;return}if(cmd===\"processQueuedMainThreadWork\"){_emscripten_main_thread_process_queued_calls()}else if(cmd===\"spawnThread\"){__spawn_thread(e.data)}else if(cmd===\"cleanupThread\"){__cleanup_thread(d[\"thread\"])}else if(cmd===\"killThread\"){__kill_thread(d[\"thread\"])}else if(cmd===\"cancelThread\"){__cancel_thread(d[\"thread\"])}else if(cmd===\"loaded\"){worker.loaded=true;if(onFinishedLoading)onFinishedLoading(worker);if(worker.runPthread){worker.runPthread();delete worker.runPthread}}else if(cmd===\"print\"){out(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"printErr\"){err(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"alert\"){alert(\"Thread \"+d[\"threadId\"]+\": \"+d[\"text\"])}else if(cmd===\"exit\"){var detached=worker.pthread&&Atomics.load(GROWABLE_HEAP_U32(),worker.pthread.thread+68>>2);if(detached){PThread.returnWorkerToPool(worker)}}else if(cmd===\"cancelDone\"){PThread.returnWorkerToPool(worker)}else if(cmd===\"objectTransfer\"){PThread.receiveObjectTransfer(e.data)}else if(e.data.target===\"setimmediate\"){worker.postMessage(e.data)}else{err(\"worker sent an unknown command \"+cmd)}PThread.currentProxiedOperationCallerThread=undefined};worker.onerror=function(e){err(\"pthread sent an error! \"+e.filename+\":\"+e.lineno+\": \"+e.message)};if(ENVIRONMENT_IS_NODE){worker.on(\"message\",function(data){worker.onmessage({data:data})});worker.on(\"error\",function(data){worker.onerror(data)});worker.on(\"exit\",function(data){console.log(\"worker exited - TODO: update the worker queue?\")})}worker.postMessage({\"cmd\":\"load\",\"urlOrBlob\":Module[\"mainScriptUrlOrBlob\"]||_scriptDir,\"wasmMemory\":wasmMemory,\"wasmModule\":wasmModule,\"DYNAMIC_BASE\":DYNAMIC_BASE,\"DYNAMICTOP_PTR\":DYNAMICTOP_PTR})},allocateUnusedWorker:function(){var pthreadMainJs=locateFile(\"tfjs-backend-wasm-threaded-simd.worker.js\");PThread.unusedWorkers.push(new Worker(pthreadMainJs))},getNewWorker:function(){if(PThread.unusedWorkers.length==0){PThread.allocateUnusedWorker();PThread.loadWasmModuleToWorker(PThread.unusedWorkers[0])}if(PThread.unusedWorkers.length>0)return PThread.unusedWorkers.pop();else return null},busySpinWait:function(msecs){var t=performance.now()+msecs;while(performance.now()>2]=value;return value}function _atexit(func,arg){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(1,1,func,arg);__ATEXIT__.unshift({func:func,arg:arg})}function __emscripten_notify_thread_queue(targetThreadId,mainThreadId){if(targetThreadId==mainThreadId){postMessage({\"cmd\":\"processQueuedMainThreadWork\"})}else if(ENVIRONMENT_IS_PTHREAD){postMessage({\"targetThread\":targetThreadId,\"cmd\":\"processThreadQueue\"})}else{var pthread=PThread.pthreads[targetThreadId];var worker=pthread&&pthread.worker;if(!worker){return}worker.postMessage({\"cmd\":\"processThreadQueue\"})}return 1}function _abort(){abort()}function _emscripten_conditional_set_current_thread_status(expectedStatus,newStatus){expectedStatus=expectedStatus|0;newStatus=newStatus|0}function _emscripten_futex_wait(addr,val,timeout){if(addr<=0||addr>GROWABLE_HEAP_I8().length||addr&3!=0)return-28;if(ENVIRONMENT_IS_WORKER){var ret=Atomics.wait(GROWABLE_HEAP_I32(),addr>>2,val,timeout);if(ret===\"timed-out\")return-73;if(ret===\"not-equal\")return-6;if(ret===\"ok\")return 0;throw\"Atomics.wait returned an unexpected value \"+ret}else{var loadedVal=Atomics.load(GROWABLE_HEAP_I32(),addr>>2);if(val!=loadedVal)return-6;var tNow=performance.now();var tEnd=tNow+timeout;Atomics.store(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2,addr);var ourWaitAddress=addr;while(addr==ourWaitAddress){tNow=performance.now();if(tNow>tEnd){return-73}_emscripten_main_thread_process_queued_calls();addr=Atomics.load(GROWABLE_HEAP_I32(),__main_thread_futex_wait_address>>2)}return 0}}function _emscripten_is_main_browser_thread(){return __pthread_is_main_browser_thread|0}function _emscripten_is_main_runtime_thread(){return __pthread_is_main_runtime_thread|0}function _emscripten_memcpy_big(dest,src,num){GROWABLE_HEAP_U8().copyWithin(dest,src,src+num)}function _emscripten_num_logical_cores(){return navigator[\"hardwareConcurrency\"]}function _emscripten_proxy_to_main_thread_js(index,sync){var numCallArgs=arguments.length-2;var stack=stackSave();var args=stackAlloc(numCallArgs*8);var b=args>>3;for(var i=0;i>3]);buf+=8}else{buf=buf+3&~3;args.push(GROWABLE_HEAP_I32()[buf>>2]);buf+=4}}return args}function _emscripten_receive_on_main_thread_js(index,numCallArgs,args){_emscripten_receive_on_main_thread_js_callArgs.length=numCallArgs;var b=args>>3;for(var i=0;i>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){requestedSize=requestedSize>>>0;var oldSize=_emscripten_get_heap_size();if(requestedSize<=oldSize){return false}var PAGE_MULTIPLE=65536;var maxHeapSize=2147483648;if(requestedSize>maxHeapSize){return false}var minHeapSize=16777216;for(var cutDown=1;cutDown<=4;cutDown*=2){var overGrownHeapSize=oldSize*(1+.2/cutDown);overGrownHeapSize=Math.min(overGrownHeapSize,requestedSize+100663296);var newSize=Math.min(maxHeapSize,alignUp(Math.max(minHeapSize,requestedSize,overGrownHeapSize),PAGE_MULTIPLE));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var JSEvents={keyEvent:0,mouseEvent:0,wheelEvent:0,uiEvent:0,focusEvent:0,deviceOrientationEvent:0,deviceMotionEvent:0,fullscreenChangeEvent:0,pointerlockChangeEvent:0,visibilityChangeEvent:0,touchEvent:0,previousFullscreenElement:null,previousScreenX:null,previousScreenY:null,removeEventListenersRegistered:false,removeAllEventListeners:function(){for(var i=JSEvents.eventHandlers.length-1;i>=0;--i){JSEvents._removeHandler(i)}JSEvents.eventHandlers=[];JSEvents.deferredCalls=[]},registerRemoveEventListeners:function(){if(!JSEvents.removeEventListenersRegistered){__ATEXIT__.push(JSEvents.removeAllEventListeners);JSEvents.removeEventListenersRegistered=true}},deferredCalls:[],deferCall:function(targetFunction,precedence,argsList){function arraysHaveEqualContent(arrA,arrB){if(arrA.length!=arrB.length)return false;for(var i in arrA){if(arrA[i]!=arrB[i])return false}return true}for(var i in JSEvents.deferredCalls){var call=JSEvents.deferredCalls[i];if(call.targetFunction==targetFunction&&arraysHaveEqualContent(call.argsList,argsList)){return}}JSEvents.deferredCalls.push({targetFunction:targetFunction,precedence:precedence,argsList:argsList});JSEvents.deferredCalls.sort(function(x,y){return x.precedence>2]=eventTypeId;GROWABLE_HEAP_I32()[varargs+4>>2]=eventData;GROWABLE_HEAP_I32()[varargs+8>>2]=userData;_emscripten_async_queue_on_thread_(targetThread,637534208,eventHandlerFunc,eventData,varargs);stackRestore(stackTop)},getTargetThreadForEventCallback:function(targetThread){switch(targetThread){case 1:return 0;case 2:return PThread.currentProxiedOperationCallerThread;default:return targetThread}},getNodeNameForTarget:function(target){if(!target)return\"\";if(target==window)return\"#window\";if(target==screen)return\"#screen\";return target&&target.nodeName?target.nodeName:\"\"},fullscreenEnabled:function(){return document.fullscreenEnabled||document.webkitFullscreenEnabled}};function stringToNewUTF8(jsString){var length=lengthBytesUTF8(jsString)+1;var cString=_malloc(length);stringToUTF8(jsString,cString,length);return cString}function _emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height){var stackTop=stackSave();var varargs=stackAlloc(12);var targetCanvasPtr=0;if(targetCanvas){targetCanvasPtr=stringToNewUTF8(targetCanvas)}GROWABLE_HEAP_I32()[varargs>>2]=targetCanvasPtr;GROWABLE_HEAP_I32()[varargs+4>>2]=width;GROWABLE_HEAP_I32()[varargs+8>>2]=height;_emscripten_async_queue_on_thread_(targetThread,657457152,0,targetCanvasPtr,varargs);stackRestore(stackTop)}function _emscripten_set_offscreencanvas_size_on_target_thread(targetThread,targetCanvas,width,height){targetCanvas=targetCanvas?UTF8ToString(targetCanvas):\"\";_emscripten_set_offscreencanvas_size_on_target_thread_js(targetThread,targetCanvas,width,height)}function __maybeCStringToJsString(cString){return cString>2?UTF8ToString(cString):cString}var specialHTMLTargets=[0,typeof document!==\"undefined\"?document:0,typeof window!==\"undefined\"?window:0];function __findEventTarget(target){target=__maybeCStringToJsString(target);var domElement=specialHTMLTargets[target]||(typeof document!==\"undefined\"?document.querySelector(target):undefined);return domElement}function __findCanvasEventTarget(target){return __findEventTarget(target)}function _emscripten_set_canvas_element_size_calling_thread(target,width,height){var canvas=__findCanvasEventTarget(target);if(!canvas)return-4;if(canvas.canvasSharedPtr){GROWABLE_HEAP_I32()[canvas.canvasSharedPtr>>2]=width;GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+4>>2]=height}if(canvas.offscreenCanvas||!canvas.controlTransferredOffscreen){if(canvas.offscreenCanvas)canvas=canvas.offscreenCanvas;var autoResizeViewport=false;if(canvas.GLctxObject&&canvas.GLctxObject.GLctx){var prevViewport=canvas.GLctxObject.GLctx.getParameter(2978);autoResizeViewport=prevViewport[0]===0&&prevViewport[1]===0&&prevViewport[2]===canvas.width&&prevViewport[3]===canvas.height}canvas.width=width;canvas.height=height;if(autoResizeViewport){canvas.GLctxObject.GLctx.viewport(0,0,width,height)}}else if(canvas.canvasSharedPtr){var targetThread=GROWABLE_HEAP_I32()[canvas.canvasSharedPtr+8>>2];_emscripten_set_offscreencanvas_size_on_target_thread(targetThread,target,width,height);return 1}else{return-4}return 0}function _emscripten_set_canvas_element_size_main_thread(target,width,height){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(2,1,target,width,height);return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}function _emscripten_set_canvas_element_size(target,width,height){var canvas=__findCanvasEventTarget(target);if(canvas){return _emscripten_set_canvas_element_size_calling_thread(target,width,height)}else{return _emscripten_set_canvas_element_size_main_thread(target,width,height)}}function _emscripten_set_current_thread_status(newStatus){newStatus=newStatus|0}function _emscripten_set_thread_name(threadId,name){threadId=threadId|0;name=name|0}function __webgl_enable_ANGLE_instanced_arrays(ctx){var ext=ctx.getExtension(\"ANGLE_instanced_arrays\");if(ext){ctx[\"vertexAttribDivisor\"]=function(index,divisor){ext[\"vertexAttribDivisorANGLE\"](index,divisor)};ctx[\"drawArraysInstanced\"]=function(mode,first,count,primcount){ext[\"drawArraysInstancedANGLE\"](mode,first,count,primcount)};ctx[\"drawElementsInstanced\"]=function(mode,count,type,indices,primcount){ext[\"drawElementsInstancedANGLE\"](mode,count,type,indices,primcount)};return 1}}function __webgl_enable_OES_vertex_array_object(ctx){var ext=ctx.getExtension(\"OES_vertex_array_object\");if(ext){ctx[\"createVertexArray\"]=function(){return ext[\"createVertexArrayOES\"]()};ctx[\"deleteVertexArray\"]=function(vao){ext[\"deleteVertexArrayOES\"](vao)};ctx[\"bindVertexArray\"]=function(vao){ext[\"bindVertexArrayOES\"](vao)};ctx[\"isVertexArray\"]=function(vao){return ext[\"isVertexArrayOES\"](vao)};return 1}}function __webgl_enable_WEBGL_draw_buffers(ctx){var ext=ctx.getExtension(\"WEBGL_draw_buffers\");if(ext){ctx[\"drawBuffers\"]=function(n,bufs){ext[\"drawBuffersWEBGL\"](n,bufs)};return 1}}var GL={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:{},currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],programInfos:{},stringCache:{},unpackAlignment:4,init:function(){var miniTempFloatBuffer=new Float32Array(GL.MINI_TEMP_BUFFER_SIZE);for(var i=0;i>2]:-1;source+=UTF8ToString(GROWABLE_HEAP_I32()[string+i*4>>2],len<0?undefined:len)}return source},createContext:function(canvas,webGLContextAttributes){var ctx=canvas.getContext(\"webgl\",webGLContextAttributes);if(!ctx)return 0;var handle=GL.registerContext(ctx,webGLContextAttributes);return handle},registerContext:function(ctx,webGLContextAttributes){var handle=_malloc(8);GROWABLE_HEAP_I32()[handle+4>>2]=_pthread_self();var context={handle:handle,attributes:webGLContextAttributes,version:webGLContextAttributes.majorVersion,GLctx:ctx};if(ctx.canvas)ctx.canvas.GLctxObject=context;GL.contexts[handle]=context;if(typeof webGLContextAttributes.enableExtensionsByDefault===\"undefined\"||webGLContextAttributes.enableExtensionsByDefault){GL.initExtensions(context)}return handle},makeContextCurrent:function(contextHandle){GL.currentContext=GL.contexts[contextHandle];Module.ctx=GLctx=GL.currentContext&&GL.currentContext.GLctx;return!(contextHandle&&!GLctx)},getContext:function(contextHandle){return GL.contexts[contextHandle]},deleteContext:function(contextHandle){if(GL.currentContext===GL.contexts[contextHandle])GL.currentContext=null;if(typeof JSEvents===\"object\")JSEvents.removeAllHandlersOnTarget(GL.contexts[contextHandle].GLctx.canvas);if(GL.contexts[contextHandle]&&GL.contexts[contextHandle].GLctx.canvas)GL.contexts[contextHandle].GLctx.canvas.GLctxObject=undefined;_free(GL.contexts[contextHandle].handle);GL.contexts[contextHandle]=null},initExtensions:function(context){if(!context)context=GL.currentContext;if(context.initExtensionsDone)return;context.initExtensionsDone=true;var GLctx=context.GLctx;__webgl_enable_ANGLE_instanced_arrays(GLctx);__webgl_enable_OES_vertex_array_object(GLctx);__webgl_enable_WEBGL_draw_buffers(GLctx);GLctx.disjointTimerQueryExt=GLctx.getExtension(\"EXT_disjoint_timer_query\");var automaticallyEnabledExtensions=[\"OES_texture_float\",\"OES_texture_half_float\",\"OES_standard_derivatives\",\"OES_vertex_array_object\",\"WEBGL_compressed_texture_s3tc\",\"WEBGL_depth_texture\",\"OES_element_index_uint\",\"EXT_texture_filter_anisotropic\",\"EXT_frag_depth\",\"WEBGL_draw_buffers\",\"ANGLE_instanced_arrays\",\"OES_texture_float_linear\",\"OES_texture_half_float_linear\",\"EXT_blend_minmax\",\"EXT_shader_texture_lod\",\"EXT_texture_norm16\",\"WEBGL_compressed_texture_pvrtc\",\"EXT_color_buffer_half_float\",\"WEBGL_color_buffer_float\",\"EXT_sRGB\",\"WEBGL_compressed_texture_etc1\",\"EXT_disjoint_timer_query\",\"WEBGL_compressed_texture_etc\",\"WEBGL_compressed_texture_astc\",\"EXT_color_buffer_float\",\"WEBGL_compressed_texture_s3tc_srgb\",\"EXT_disjoint_timer_query_webgl2\",\"WEBKIT_WEBGL_compressed_texture_pvrtc\"];var exts=GLctx.getSupportedExtensions()||[];exts.forEach(function(ext){if(automaticallyEnabledExtensions.indexOf(ext)!=-1){GLctx.getExtension(ext)}})},populateUniformTable:function(program){var p=GL.programs[program];var ptable=GL.programInfos[program]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};var utable=ptable.uniforms;var numUniforms=GLctx.getProgramParameter(p,35718);for(var i=0;i>2;contextAttributes[\"alpha\"]=!!GROWABLE_HEAP_I32()[a+(0>>2)];contextAttributes[\"depth\"]=!!GROWABLE_HEAP_I32()[a+(4>>2)];contextAttributes[\"stencil\"]=!!GROWABLE_HEAP_I32()[a+(8>>2)];contextAttributes[\"antialias\"]=!!GROWABLE_HEAP_I32()[a+(12>>2)];contextAttributes[\"premultipliedAlpha\"]=!!GROWABLE_HEAP_I32()[a+(16>>2)];contextAttributes[\"preserveDrawingBuffer\"]=!!GROWABLE_HEAP_I32()[a+(20>>2)];var powerPreference=GROWABLE_HEAP_I32()[a+(24>>2)];contextAttributes[\"powerPreference\"]=__emscripten_webgl_power_preferences[powerPreference];contextAttributes[\"failIfMajorPerformanceCaveat\"]=!!GROWABLE_HEAP_I32()[a+(28>>2)];contextAttributes.majorVersion=GROWABLE_HEAP_I32()[a+(32>>2)];contextAttributes.minorVersion=GROWABLE_HEAP_I32()[a+(36>>2)];contextAttributes.enableExtensionsByDefault=GROWABLE_HEAP_I32()[a+(40>>2)];contextAttributes.explicitSwapControl=GROWABLE_HEAP_I32()[a+(44>>2)];contextAttributes.proxyContextToMainThread=GROWABLE_HEAP_I32()[a+(48>>2)];contextAttributes.renderViaOffscreenBackBuffer=GROWABLE_HEAP_I32()[a+(52>>2)];var canvas=__findCanvasEventTarget(target);if(!canvas){return-4}if(contextAttributes.explicitSwapControl){return-1}var contextHandle=GL.createContext(canvas,contextAttributes);return contextHandle}function _emscripten_webgl_create_context(a0,a1){return _emscripten_webgl_do_create_context(a0,a1)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=GROWABLE_HEAP_I32()[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(3,1,fd);return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(4,1,fd,offset_low,offset_high,whence,newOffset)}function _fd_write(fd,iov,iovcnt,pnum){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(5,1,fd,iov,iovcnt,pnum);var num=0;for(var i=0;i>2];var len=GROWABLE_HEAP_I32()[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _pthread_cleanup_pop(execute){var routine=PThread.exitHandlers.pop();if(execute)routine()}function _pthread_cleanup_push(routine,arg){if(PThread.exitHandlers===null){PThread.exitHandlers=[]}PThread.exitHandlers.push(function(){dynCall_vi(routine,arg)})}function __spawn_thread(threadParams){if(ENVIRONMENT_IS_PTHREAD)throw\"Internal Error! _spawn_thread() can only ever be called from main application thread!\";var worker=PThread.getNewWorker();if(worker.pthread!==undefined)throw\"Internal error!\";if(!threadParams.pthread_ptr)throw\"Internal error, no pthread ptr!\";PThread.runningWorkers.push(worker);var tlsMemory=_malloc(128*4);for(var i=0;i<128;++i){GROWABLE_HEAP_I32()[tlsMemory+i*4>>2]=0}var stackHigh=threadParams.stackBase+threadParams.stackSize;var pthread=PThread.pthreads[threadParams.pthread_ptr]={worker:worker,stackBase:threadParams.stackBase,stackSize:threadParams.stackSize,allocatedOwnStack:threadParams.allocatedOwnStack,thread:threadParams.pthread_ptr,threadInfoStruct:threadParams.pthread_ptr};var tis=pthread.threadInfoStruct>>2;Atomics.store(GROWABLE_HEAP_U32(),tis+(0>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(4>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(8>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(68>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(104>>2),tlsMemory);Atomics.store(GROWABLE_HEAP_U32(),tis+(48>>2),0);Atomics.store(GROWABLE_HEAP_U32(),tis+(40>>2),pthread.threadInfoStruct);Atomics.store(GROWABLE_HEAP_U32(),tis+(44>>2),42);Atomics.store(GROWABLE_HEAP_U32(),tis+(108>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(84>>2),threadParams.stackSize);Atomics.store(GROWABLE_HEAP_U32(),tis+(80>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+8>>2),stackHigh);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+12>>2),threadParams.detached);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+20>>2),threadParams.schedPolicy);Atomics.store(GROWABLE_HEAP_U32(),tis+(108+24>>2),threadParams.schedPrio);var global_libc=_emscripten_get_global_libc();var global_locale=global_libc+40;Atomics.store(GROWABLE_HEAP_U32(),tis+(176>>2),global_locale);worker.pthread=pthread;var msg={\"cmd\":\"run\",\"start_routine\":threadParams.startRoutine,\"arg\":threadParams.arg,\"threadInfoStruct\":threadParams.pthread_ptr,\"selfThreadId\":threadParams.pthread_ptr,\"parentThreadId\":threadParams.parent_pthread_ptr,\"stackBase\":threadParams.stackBase,\"stackSize\":threadParams.stackSize};worker.runPthread=function(){msg.time=performance.now();worker.postMessage(msg,threadParams.transferList)};if(worker.loaded){worker.runPthread();delete worker.runPthread}}function _pthread_getschedparam(thread,policy,schedparam){if(!policy&&!schedparam)return ERRNO_CODES.EINVAL;if(!thread){err(\"pthread_getschedparam called with a null thread pointer!\");return ERRNO_CODES.ESRCH}var self=GROWABLE_HEAP_I32()[thread+12>>2];if(self!==thread){err(\"pthread_getschedparam attempted on thread \"+thread+\", which does not point to a valid thread, or does not exist anymore!\");return ERRNO_CODES.ESRCH}var schedPolicy=Atomics.load(GROWABLE_HEAP_U32(),thread+108+20>>2);var schedPrio=Atomics.load(GROWABLE_HEAP_U32(),thread+108+24>>2);if(policy)GROWABLE_HEAP_I32()[policy>>2]=schedPolicy;if(schedparam)GROWABLE_HEAP_I32()[schedparam>>2]=schedPrio;return 0}function _pthread_self(){return __pthread_ptr|0}Module[\"_pthread_self\"]=_pthread_self;function _pthread_create(pthread_ptr,attr,start_routine,arg){if(typeof SharedArrayBuffer===\"undefined\"){err(\"Current environment does not support SharedArrayBuffer, pthreads are not available!\");return 6}if(!pthread_ptr){err(\"pthread_create called with a null thread pointer!\");return 28}var transferList=[];var error=0;if(ENVIRONMENT_IS_PTHREAD&&(transferList.length===0||error)){return _emscripten_sync_run_in_main_thread_4(687865856,pthread_ptr,attr,start_routine,arg)}if(error)return error;var stackSize=0;var stackBase=0;var detached=0;var schedPolicy=0;var schedPrio=0;if(attr){stackSize=GROWABLE_HEAP_I32()[attr>>2];stackSize+=81920;stackBase=GROWABLE_HEAP_I32()[attr+8>>2];detached=GROWABLE_HEAP_I32()[attr+12>>2]!==0;var inheritSched=GROWABLE_HEAP_I32()[attr+16>>2]===0;if(inheritSched){var prevSchedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];var prevSchedPrio=GROWABLE_HEAP_I32()[attr+24>>2];var parentThreadPtr=PThread.currentProxiedOperationCallerThread?PThread.currentProxiedOperationCallerThread:_pthread_self();_pthread_getschedparam(parentThreadPtr,attr+20,attr+24);schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2];GROWABLE_HEAP_I32()[attr+20>>2]=prevSchedPolicy;GROWABLE_HEAP_I32()[attr+24>>2]=prevSchedPrio}else{schedPolicy=GROWABLE_HEAP_I32()[attr+20>>2];schedPrio=GROWABLE_HEAP_I32()[attr+24>>2]}}else{stackSize=2097152}var allocatedOwnStack=stackBase==0;if(allocatedOwnStack){stackBase=_memalign(16,stackSize)}else{stackBase-=stackSize;assert(stackBase>0)}var threadInfoStruct=_malloc(232);for(var i=0;i<232>>2;++i)GROWABLE_HEAP_U32()[(threadInfoStruct>>2)+i]=0;GROWABLE_HEAP_I32()[pthread_ptr>>2]=threadInfoStruct;GROWABLE_HEAP_I32()[threadInfoStruct+12>>2]=threadInfoStruct;var headPtr=threadInfoStruct+156;GROWABLE_HEAP_I32()[headPtr>>2]=headPtr;var threadParams={stackBase:stackBase,stackSize:stackSize,allocatedOwnStack:allocatedOwnStack,schedPolicy:schedPolicy,schedPrio:schedPrio,detached:detached,startRoutine:start_routine,pthread_ptr:threadInfoStruct,parent_pthread_ptr:_pthread_self(),arg:arg,transferList:transferList};if(ENVIRONMENT_IS_PTHREAD){threadParams.cmd=\"spawnThread\";postMessage(threadParams,transferList)}else{__spawn_thread(threadParams)}return 0}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}function _sysconf(name){if(ENVIRONMENT_IS_PTHREAD)return _emscripten_proxy_to_main_thread_js(6,1,name);switch(name){case 30:return 16384;case 85:var maxHeapSize=2147483648;return maxHeapSize/16384;case 132:case 133:case 12:case 137:case 138:case 15:case 235:case 16:case 17:case 18:case 19:case 20:case 149:case 13:case 10:case 236:case 153:case 9:case 21:case 22:case 159:case 154:case 14:case 77:case 78:case 139:case 80:case 81:case 82:case 68:case 67:case 164:case 11:case 29:case 47:case 48:case 95:case 52:case 51:case 46:case 79:return 200809;case 27:case 246:case 127:case 128:case 23:case 24:case 160:case 161:case 181:case 182:case 242:case 183:case 184:case 243:case 244:case 245:case 165:case 178:case 179:case 49:case 50:case 168:case 169:case 175:case 170:case 171:case 172:case 97:case 76:case 32:case 173:case 35:return-1;case 176:case 177:case 7:case 155:case 8:case 157:case 125:case 126:case 92:case 93:case 129:case 130:case 131:case 94:case 91:return 1;case 74:case 60:case 69:case 70:case 4:return 1024;case 31:case 42:case 72:return 32;case 87:case 26:case 33:return 2147483647;case 34:case 1:return 47839;case 38:case 36:return 99;case 43:case 37:return 2048;case 0:return 2097152;case 3:return 65536;case 28:return 32768;case 44:return 32767;case 75:return 16384;case 39:return 1e3;case 89:return 700;case 71:return 256;case 40:return 255;case 2:return 100;case 180:return 64;case 25:return 20;case 5:return 16;case 6:return 6;case 73:return 4;case 84:{if(typeof navigator===\"object\")return navigator[\"hardwareConcurrency\"]||1;return 1}}setErrNo(28);return-1}if(!ENVIRONMENT_IS_PTHREAD)PThread.initMainThreadBlock();else PThread.initWorker();var GLctx;GL.init();var proxiedFunctionTable=[null,_atexit,_emscripten_set_canvas_element_size_main_thread,_fd_close,_fd_seek,_fd_write,_sysconf];var asmLibraryArg={\"e\":___assert_fail,\"r\":___call_main,\"w\":__emscripten_notify_thread_queue,\"a\":_abort,\"l\":_emscripten_conditional_set_current_thread_status,\"d\":_emscripten_futex_wait,\"c\":_emscripten_futex_wake,\"h\":_emscripten_get_now,\"g\":_emscripten_is_main_browser_thread,\"x\":_emscripten_is_main_runtime_thread,\"q\":_emscripten_memcpy_big,\"B\":_emscripten_num_logical_cores,\"t\":_emscripten_receive_on_main_thread_js,\"A\":_emscripten_resize_heap,\"u\":_emscripten_set_canvas_element_size,\"k\":_emscripten_set_current_thread_status,\"s\":_emscripten_set_thread_name,\"v\":_emscripten_webgl_create_context,\"m\":_fd_close,\"o\":_fd_seek,\"i\":_fd_write,\"p\":initPthreadsJS,\"memory\":wasmMemory||Module[\"wasmMemory\"],\"y\":_pthread_cleanup_pop,\"z\":_pthread_cleanup_push,\"j\":_pthread_create,\"b\":_pthread_self,\"f\":_roundf,\"n\":_sysconf,\"table\":wasmTable};var asm=createWasm();Module[\"asm\"]=asm;var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"C\"]).apply(null,arguments)};var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"ea\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"fa\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"ga\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"ha\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"ia\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"ja\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"ka\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"la\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"ma\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"na\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"oa\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"pa\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"qa\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"ra\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"sa\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"ta\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"ua\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"va\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"wa\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"xa\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"ya\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"za\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"Aa\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Ba\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"Ca\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Da\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"Ea\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"Fa\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Ga\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Ha\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Ia\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Ja\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Ka\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"La\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"Ma\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Na\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Oa\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Pa\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Qa\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Ra\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"Sa\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"Ta\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"Ua\"]).apply(null,arguments)};var _emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=function(){return(_emscripten_get_global_libc=Module[\"_emscripten_get_global_libc\"]=Module[\"asm\"][\"Va\"]).apply(null,arguments)};var ___errno_location=Module[\"___errno_location\"]=function(){return(___errno_location=Module[\"___errno_location\"]=Module[\"asm\"][\"Wa\"]).apply(null,arguments)};var ___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=function(){return(___em_js__initPthreadsJS=Module[\"___em_js__initPthreadsJS\"]=Module[\"asm\"][\"Xa\"]).apply(null,arguments)};var _memalign=Module[\"_memalign\"]=function(){return(_memalign=Module[\"_memalign\"]=Module[\"asm\"][\"Ya\"]).apply(null,arguments)};var ___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=function(){return(___pthread_tsd_run_dtors=Module[\"___pthread_tsd_run_dtors\"]=Module[\"asm\"][\"Za\"]).apply(null,arguments)};var _emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=function(){return(_emscripten_main_thread_process_queued_calls=Module[\"_emscripten_main_thread_process_queued_calls\"]=Module[\"asm\"][\"_a\"]).apply(null,arguments)};var _emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=function(){return(_emscripten_current_thread_process_queued_calls=Module[\"_emscripten_current_thread_process_queued_calls\"]=Module[\"asm\"][\"$a\"]).apply(null,arguments)};var _emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=function(){return(_emscripten_register_main_browser_thread_id=Module[\"_emscripten_register_main_browser_thread_id\"]=Module[\"asm\"][\"ab\"]).apply(null,arguments)};var _emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=function(){return(_emscripten_main_browser_thread_id=Module[\"_emscripten_main_browser_thread_id\"]=Module[\"asm\"][\"bb\"]).apply(null,arguments)};var _emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=function(){return(_emscripten_async_run_in_main_thread=Module[\"_emscripten_async_run_in_main_thread\"]=Module[\"asm\"][\"cb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=function(){return(_emscripten_sync_run_in_main_thread=Module[\"_emscripten_sync_run_in_main_thread\"]=Module[\"asm\"][\"db\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=function(){return(_emscripten_sync_run_in_main_thread_0=Module[\"_emscripten_sync_run_in_main_thread_0\"]=Module[\"asm\"][\"eb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=function(){return(_emscripten_sync_run_in_main_thread_1=Module[\"_emscripten_sync_run_in_main_thread_1\"]=Module[\"asm\"][\"fb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=function(){return(_emscripten_sync_run_in_main_thread_2=Module[\"_emscripten_sync_run_in_main_thread_2\"]=Module[\"asm\"][\"gb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=function(){return(_emscripten_sync_run_in_main_thread_xprintf_varargs=Module[\"_emscripten_sync_run_in_main_thread_xprintf_varargs\"]=Module[\"asm\"][\"hb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=function(){return(_emscripten_sync_run_in_main_thread_3=Module[\"_emscripten_sync_run_in_main_thread_3\"]=Module[\"asm\"][\"ib\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=function(){return(_emscripten_sync_run_in_main_thread_4=Module[\"_emscripten_sync_run_in_main_thread_4\"]=Module[\"asm\"][\"jb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=function(){return(_emscripten_sync_run_in_main_thread_5=Module[\"_emscripten_sync_run_in_main_thread_5\"]=Module[\"asm\"][\"kb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=function(){return(_emscripten_sync_run_in_main_thread_6=Module[\"_emscripten_sync_run_in_main_thread_6\"]=Module[\"asm\"][\"lb\"]).apply(null,arguments)};var _emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=function(){return(_emscripten_sync_run_in_main_thread_7=Module[\"_emscripten_sync_run_in_main_thread_7\"]=Module[\"asm\"][\"mb\"]).apply(null,arguments)};var _emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=function(){return(_emscripten_run_in_main_runtime_thread_js=Module[\"_emscripten_run_in_main_runtime_thread_js\"]=Module[\"asm\"][\"nb\"]).apply(null,arguments)};var _emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=function(){return(_emscripten_async_queue_on_thread_=Module[\"_emscripten_async_queue_on_thread_\"]=Module[\"asm\"][\"ob\"]).apply(null,arguments)};var _emscripten_tls_init=Module[\"_emscripten_tls_init\"]=function(){return(_emscripten_tls_init=Module[\"_emscripten_tls_init\"]=Module[\"asm\"][\"pb\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"qb\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"rb\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"sb\"]).apply(null,arguments)};var dynCall_vi=Module[\"dynCall_vi\"]=function(){return(dynCall_vi=Module[\"dynCall_vi\"]=Module[\"asm\"][\"tb\"]).apply(null,arguments)};var dynCall_v=Module[\"dynCall_v\"]=function(){return(dynCall_v=Module[\"dynCall_v\"]=Module[\"asm\"][\"ub\"]).apply(null,arguments)};var dynCall_ii=Module[\"dynCall_ii\"]=function(){return(dynCall_ii=Module[\"dynCall_ii\"]=Module[\"asm\"][\"vb\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;Module[\"PThread\"]=PThread;Module[\"PThread\"]=PThread;Module[\"_pthread_self\"]=_pthread_self;Module[\"wasmMemory\"]=wasmMemory;Module[\"ExitStatus\"]=ExitStatus;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}if(!ENVIRONMENT_IS_PTHREAD)noExitRuntime=true;if(!ENVIRONMENT_IS_PTHREAD)run();\n\n\n return WasmBackendModuleThreadedSimd\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModuleThreadedSimd;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModuleThreadedSimd; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModuleThreadedSimd\"] = WasmBackendModuleThreadedSimd;\n ", "\nvar WasmBackendModule = (function() {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(WasmBackendModule) {\n WasmBackendModule = WasmBackendModule || {};\n\nvar Module=typeof WasmBackendModule!==\"undefined\"?WasmBackendModule:{};var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}var arguments_=[];var thisProgram=\"./this.program\";var quit_=function(status,toThrow){throw toThrow};var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;ENVIRONMENT_IS_WEB=typeof window===\"object\";ENVIRONMENT_IS_WORKER=typeof importScripts===\"function\";ENVIRONMENT_IS_NODE=typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\";ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;var nodeFS;var nodePath;if(ENVIRONMENT_IS_NODE){if(ENVIRONMENT_IS_WORKER){scriptDirectory=require(\"path\").dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=function shell_read(filename,binary){if(!nodeFS)nodeFS=require(\"fs\");if(!nodePath)nodePath=require(\"path\");filename=nodePath[\"normalize\"](filename);return nodeFS[\"readFileSync\"](filename,binary?null:\"utf8\")};readBinary=function readBinary(filename){var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process[\"argv\"].length>1){thisProgram=process[\"argv\"][1].replace(/\\\\/g,\"/\")}arguments_=process[\"argv\"].slice(2);process[\"on\"](\"uncaughtException\",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process[\"on\"](\"unhandledRejection\",abort);quit_=function(status){process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_SHELL){if(typeof read!=\"undefined\"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){var data;if(typeof readbuffer===\"function\"){return new Uint8Array(readbuffer(f))}data=read(f,\"binary\");assert(typeof data===\"object\");return data};if(typeof scriptArgs!=\"undefined\"){arguments_=scriptArgs}else if(typeof arguments!=\"undefined\"){arguments_=arguments}if(typeof quit===\"function\"){quit_=function(status){quit(status)}}if(typeof print!==\"undefined\"){if(typeof console===\"undefined\")console={};console.log=print;console.warn=console.error=typeof printErr!==\"undefined\"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=function shell_read(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=function readBinary(url){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=function(title){document.title=title}}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=null;if(Module[\"arguments\"])arguments_=Module[\"arguments\"];if(Module[\"thisProgram\"])thisProgram=Module[\"thisProgram\"];if(Module[\"quit\"])quit_=Module[\"quit\"];var wasmBinary;if(Module[\"wasmBinary\"])wasmBinary=Module[\"wasmBinary\"];var noExitRuntime;if(Module[\"noExitRuntime\"])noExitRuntime=Module[\"noExitRuntime\"];if(typeof WebAssembly!==\"object\"){err(\"no native wasm support detected\")}var wasmMemory;var wasmTable=new WebAssembly.Table({\"initial\":147,\"maximum\":147+0,\"element\":\"anyfunc\"});var ABORT=false;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort(\"Assertion failed: \"+text)}}function getCFunc(ident){var func=Module[\"_\"+ident];assert(func,\"Cannot call unknown function \"+ident+\", make sure it is exported\");return func}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret},\"array\":function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}};function convertReturnValue(ret){if(returnType===\"string\")return UTF8ToString(ret);if(returnType===\"boolean\")return Boolean(ret);return ret}var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i=endIdx))++endPtr;if(endPtr-idx>16&&heap.subarray&&UTF8Decoder){return UTF8Decoder.decode(heap.subarray(idx,endPtr))}else{var str=\"\";while(idx>10,56320|ch&1023)}}}return str}function UTF8ToString(ptr,maxBytesToRead){return ptr?UTF8ArrayToString(HEAPU8,ptr,maxBytesToRead):\"\"}function stringToUTF8Array(str,heap,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i=55296&&u<=57343){var u1=str.charCodeAt(++i);u=65536+((u&1023)<<10)|u1&1023}if(u<=127){if(outIdx>=endIdx)break;heap[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;heap[outIdx++]=192|u>>6;heap[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;heap[outIdx++]=224|u>>12;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}else{if(outIdx+3>=endIdx)break;heap[outIdx++]=240|u>>18;heap[outIdx++]=128|u>>12&63;heap[outIdx++]=128|u>>6&63;heap[outIdx++]=128|u&63}}heap[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBufferAndViews(buf){buffer=buf;Module[\"HEAP8\"]=HEAP8=new Int8Array(buf);Module[\"HEAP16\"]=HEAP16=new Int16Array(buf);Module[\"HEAP32\"]=HEAP32=new Int32Array(buf);Module[\"HEAPU8\"]=HEAPU8=new Uint8Array(buf);Module[\"HEAPU16\"]=HEAPU16=new Uint16Array(buf);Module[\"HEAPU32\"]=HEAPU32=new Uint32Array(buf);Module[\"HEAPF32\"]=HEAPF32=new Float32Array(buf);Module[\"HEAPF64\"]=HEAPF64=new Float64Array(buf)}var INITIAL_INITIAL_MEMORY=Module[\"INITIAL_MEMORY\"]||16777216;function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback==\"function\"){callback(Module);continue}var func=callback.func;if(typeof func===\"number\"){if(callback.arg===undefined){Module[\"dynCall_v\"](func)}else{Module[\"dynCall_vi\"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module[\"preRun\"]){if(typeof Module[\"preRun\"]==\"function\")Module[\"preRun\"]=[Module[\"preRun\"]];while(Module[\"preRun\"].length){addOnPreRun(Module[\"preRun\"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function initRuntime(){runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){runtimeExited=true}function postRun(){if(Module[\"postRun\"]){if(typeof Module[\"postRun\"]==\"function\")Module[\"postRun\"]=[Module[\"postRun\"]];while(Module[\"postRun\"].length){addOnPostRun(Module[\"postRun\"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}var Math_ceil=Math.ceil;var Math_floor=Math.floor;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module[\"monitorRunDependencies\"]){Module[\"monitorRunDependencies\"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module[\"preloadedImages\"]={};Module[\"preloadedAudios\"]={};function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what+=\"\";out(what);err(what);ABORT=true;EXITSTATUS=1;what=\"abort(\"+what+\"). Build with -s ASSERTIONS=1 for more info.\";throw new WebAssembly.RuntimeError(what)}function hasPrefix(str,prefix){return String.prototype.startsWith?str.startsWith(prefix):str.indexOf(prefix)===0}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return hasPrefix(filename,dataURIPrefix)}var fileURIPrefix=\"file://\";function isFileURI(filename){return hasPrefix(filename,fileURIPrefix)}var wasmBinaryFile=\"tfjs-backend-wasm.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(){try{if(wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(wasmBinaryFile)}else{throw\"both async and sync fetching of the wasm failed\"}}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)&&typeof fetch===\"function\"&&!isFileURI(wasmBinaryFile)){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){if(!response[\"ok\"]){throw\"failed to load wasm binary file at '\"+wasmBinaryFile+\"'\"}return response[\"arrayBuffer\"]()}).catch(function(){return getBinary()})}return new Promise(function(resolve,reject){resolve(getBinary())})}function createWasm(){var info={\"env\":asmLibraryArg,\"wasi_snapshot_preview1\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=exports[\"memory\"];updateGlobalBufferAndViews(wasmMemory.buffer);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiatedSource(output){receiveInstance(output[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(receiver,function(reason){err(\"failed to asynchronously prepare wasm: \"+reason);abort(reason)})}function instantiateAsync(){if(!wasmBinary&&typeof WebAssembly.instantiateStreaming===\"function\"&&!isDataURI(wasmBinaryFile)&&!isFileURI(wasmBinaryFile)&&typeof fetch===\"function\"){fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiatedSource,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");instantiateArrayBuffer(receiveInstantiatedSource)})})}else{return instantiateArrayBuffer(receiveInstantiatedSource)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);return false}}instantiateAsync();return{}}__ATINIT__.push();function _emscripten_notify_memory_growth(memoryIndex){updateGlobalBufferAndViews(wasmMemory.buffer)}var PATH={splitPath:function(filename){var splitPathRe=/^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;return splitPathRe.exec(filename).slice(1)},normalizeArray:function(parts,allowAboveRoot){var up=0;for(var i=parts.length-1;i>=0;i--){var last=parts[i];if(last===\".\"){parts.splice(i,1)}else if(last===\"..\"){parts.splice(i,1);up++}else if(up){parts.splice(i,1);up--}}if(allowAboveRoot){for(;up;up--){parts.unshift(\"..\")}}return parts},normalize:function(path){var isAbsolute=path.charAt(0)===\"/\",trailingSlash=path.substr(-1)===\"/\";path=PATH.normalizeArray(path.split(\"/\").filter(function(p){return!!p}),!isAbsolute).join(\"/\");if(!path&&!isAbsolute){path=\".\"}if(path&&trailingSlash){path+=\"/\"}return(isAbsolute?\"/\":\"\")+path},dirname:function(path){var result=PATH.splitPath(path),root=result[0],dir=result[1];if(!root&&!dir){return\".\"}if(dir){dir=dir.substr(0,dir.length-1)}return root+dir},basename:function(path){if(path===\"/\")return\"/\";var lastSlash=path.lastIndexOf(\"/\");if(lastSlash===-1)return path;return path.substr(lastSlash+1)},extname:function(path){return PATH.splitPath(path)[3]},join:function(){var paths=Array.prototype.slice.call(arguments,0);return PATH.normalize(paths.join(\"/\"))},join2:function(l,r){return PATH.normalize(l+\"/\"+r)}};var SYSCALLS={mappings:{},buffers:[null,[],[]],printChar:function(stream,curr){var buffer=SYSCALLS.buffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}},varargs:undefined,get:function(){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret},getStr:function(ptr){var ret=UTF8ToString(ptr);return ret},get64:function(low,high){return low}};function _fd_close(fd){return 0}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j>2]=num;return 0}function _exit(status){exit(status)}function _proc_exit(code){_exit(code)}function _roundf(d){d=+d;return d>=+0?+Math_floor(d+ +.5):+Math_ceil(d-+.5)}var asmLibraryArg={\"emscripten_notify_memory_growth\":_emscripten_notify_memory_growth,\"fd_close\":_fd_close,\"fd_seek\":_fd_seek,\"fd_write\":_fd_write,\"proc_exit\":_proc_exit,\"roundf\":_roundf};var asm=createWasm();Module[\"asm\"]=asm;var _init=Module[\"_init\"]=function(){return(_init=Module[\"_init\"]=Module[\"asm\"][\"init\"]).apply(null,arguments)};var _register_tensor=Module[\"_register_tensor\"]=function(){return(_register_tensor=Module[\"_register_tensor\"]=Module[\"asm\"][\"register_tensor\"]).apply(null,arguments)};var _dispose_data=Module[\"_dispose_data\"]=function(){return(_dispose_data=Module[\"_dispose_data\"]=Module[\"asm\"][\"dispose_data\"]).apply(null,arguments)};var _dispose=Module[\"_dispose\"]=function(){return(_dispose=Module[\"_dispose\"]=Module[\"asm\"][\"dispose\"]).apply(null,arguments)};var _Abs=Module[\"_Abs\"]=function(){return(_Abs=Module[\"_Abs\"]=Module[\"asm\"][\"Abs\"]).apply(null,arguments)};var _Add=Module[\"_Add\"]=function(){return(_Add=Module[\"_Add\"]=Module[\"asm\"][\"Add\"]).apply(null,arguments)};var _AddN=Module[\"_AddN\"]=function(){return(_AddN=Module[\"_AddN\"]=Module[\"asm\"][\"AddN\"]).apply(null,arguments)};var _ArgMax=Module[\"_ArgMax\"]=function(){return(_ArgMax=Module[\"_ArgMax\"]=Module[\"asm\"][\"ArgMax\"]).apply(null,arguments)};var _AvgPool=Module[\"_AvgPool\"]=function(){return(_AvgPool=Module[\"_AvgPool\"]=Module[\"asm\"][\"AvgPool\"]).apply(null,arguments)};var _BatchMatMul=Module[\"_BatchMatMul\"]=function(){return(_BatchMatMul=Module[\"_BatchMatMul\"]=Module[\"asm\"][\"BatchMatMul\"]).apply(null,arguments)};var _ClipByValue=Module[\"_ClipByValue\"]=function(){return(_ClipByValue=Module[\"_ClipByValue\"]=Module[\"asm\"][\"ClipByValue\"]).apply(null,arguments)};var _Conv2D=Module[\"_Conv2D\"]=function(){return(_Conv2D=Module[\"_Conv2D\"]=Module[\"asm\"][\"Conv2D\"]).apply(null,arguments)};var _Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=function(){return(_Conv2DBackpropInput=Module[\"_Conv2DBackpropInput\"]=Module[\"asm\"][\"Conv2DBackpropInput\"]).apply(null,arguments)};var _Cos=Module[\"_Cos\"]=function(){return(_Cos=Module[\"_Cos\"]=Module[\"asm\"][\"Cos\"]).apply(null,arguments)};var _CropAndResize=Module[\"_CropAndResize\"]=function(){return(_CropAndResize=Module[\"_CropAndResize\"]=Module[\"asm\"][\"CropAndResize\"]).apply(null,arguments)};var _Cumsum=Module[\"_Cumsum\"]=function(){return(_Cumsum=Module[\"_Cumsum\"]=Module[\"asm\"][\"Cumsum\"]).apply(null,arguments)};var _DepthToSpace=Module[\"_DepthToSpace\"]=function(){return(_DepthToSpace=Module[\"_DepthToSpace\"]=Module[\"asm\"][\"DepthToSpace\"]).apply(null,arguments)};var _DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=function(){return(_DepthwiseConv2dNative=Module[\"_DepthwiseConv2dNative\"]=Module[\"asm\"][\"DepthwiseConv2dNative\"]).apply(null,arguments)};var _Div=Module[\"_Div\"]=function(){return(_Div=Module[\"_Div\"]=Module[\"asm\"][\"Div\"]).apply(null,arguments)};var _Equal=Module[\"_Equal\"]=function(){return(_Equal=Module[\"_Equal\"]=Module[\"asm\"][\"Equal\"]).apply(null,arguments)};var _Exp=Module[\"_Exp\"]=function(){return(_Exp=Module[\"_Exp\"]=Module[\"asm\"][\"Exp\"]).apply(null,arguments)};var _FlipLeftRight=Module[\"_FlipLeftRight\"]=function(){return(_FlipLeftRight=Module[\"_FlipLeftRight\"]=Module[\"asm\"][\"FlipLeftRight\"]).apply(null,arguments)};var _FloorDiv=Module[\"_FloorDiv\"]=function(){return(_FloorDiv=Module[\"_FloorDiv\"]=Module[\"asm\"][\"FloorDiv\"]).apply(null,arguments)};var _FusedBatchNorm=Module[\"_FusedBatchNorm\"]=function(){return(_FusedBatchNorm=Module[\"_FusedBatchNorm\"]=Module[\"asm\"][\"FusedBatchNorm\"]).apply(null,arguments)};var _FusedConv2D=Module[\"_FusedConv2D\"]=function(){return(_FusedConv2D=Module[\"_FusedConv2D\"]=Module[\"asm\"][\"FusedConv2D\"]).apply(null,arguments)};var _FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=function(){return(_FusedDepthwiseConv2D=Module[\"_FusedDepthwiseConv2D\"]=Module[\"asm\"][\"FusedDepthwiseConv2D\"]).apply(null,arguments)};var _Gather=Module[\"_Gather\"]=function(){return(_Gather=Module[\"_Gather\"]=Module[\"asm\"][\"Gather\"]).apply(null,arguments)};var _GatherNd=Module[\"_GatherNd\"]=function(){return(_GatherNd=Module[\"_GatherNd\"]=Module[\"asm\"][\"GatherNd\"]).apply(null,arguments)};var _Greater=Module[\"_Greater\"]=function(){return(_Greater=Module[\"_Greater\"]=Module[\"asm\"][\"Greater\"]).apply(null,arguments)};var _GreaterEqual=Module[\"_GreaterEqual\"]=function(){return(_GreaterEqual=Module[\"_GreaterEqual\"]=Module[\"asm\"][\"GreaterEqual\"]).apply(null,arguments)};var _Less=Module[\"_Less\"]=function(){return(_Less=Module[\"_Less\"]=Module[\"asm\"][\"Less\"]).apply(null,arguments)};var _LessEqual=Module[\"_LessEqual\"]=function(){return(_LessEqual=Module[\"_LessEqual\"]=Module[\"asm\"][\"LessEqual\"]).apply(null,arguments)};var _Log=Module[\"_Log\"]=function(){return(_Log=Module[\"_Log\"]=Module[\"asm\"][\"Log\"]).apply(null,arguments)};var _LogicalAnd=Module[\"_LogicalAnd\"]=function(){return(_LogicalAnd=Module[\"_LogicalAnd\"]=Module[\"asm\"][\"LogicalAnd\"]).apply(null,arguments)};var _Max=Module[\"_Max\"]=function(){return(_Max=Module[\"_Max\"]=Module[\"asm\"][\"Max\"]).apply(null,arguments)};var _MaxPool=Module[\"_MaxPool\"]=function(){return(_MaxPool=Module[\"_MaxPool\"]=Module[\"asm\"][\"MaxPool\"]).apply(null,arguments)};var _Maximum=Module[\"_Maximum\"]=function(){return(_Maximum=Module[\"_Maximum\"]=Module[\"asm\"][\"Maximum\"]).apply(null,arguments)};var _Min=Module[\"_Min\"]=function(){return(_Min=Module[\"_Min\"]=Module[\"asm\"][\"Min\"]).apply(null,arguments)};var _Minimum=Module[\"_Minimum\"]=function(){return(_Minimum=Module[\"_Minimum\"]=Module[\"asm\"][\"Minimum\"]).apply(null,arguments)};var _Multiply=Module[\"_Multiply\"]=function(){return(_Multiply=Module[\"_Multiply\"]=Module[\"asm\"][\"Multiply\"]).apply(null,arguments)};var _Negate=Module[\"_Negate\"]=function(){return(_Negate=Module[\"_Negate\"]=Module[\"asm\"][\"Negate\"]).apply(null,arguments)};var _NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=function(){return(_NonMaxSuppressionV3=Module[\"_NonMaxSuppressionV3\"]=Module[\"asm\"][\"NonMaxSuppressionV3\"]).apply(null,arguments)};var _NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=function(){return(_NonMaxSuppressionV4=Module[\"_NonMaxSuppressionV4\"]=Module[\"asm\"][\"NonMaxSuppressionV4\"]).apply(null,arguments)};var _NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=function(){return(_NonMaxSuppressionV5=Module[\"_NonMaxSuppressionV5\"]=Module[\"asm\"][\"NonMaxSuppressionV5\"]).apply(null,arguments)};var _NotEqual=Module[\"_NotEqual\"]=function(){return(_NotEqual=Module[\"_NotEqual\"]=Module[\"asm\"][\"NotEqual\"]).apply(null,arguments)};var _OneHot=Module[\"_OneHot\"]=function(){return(_OneHot=Module[\"_OneHot\"]=Module[\"asm\"][\"OneHot\"]).apply(null,arguments)};var _PadV2=Module[\"_PadV2\"]=function(){return(_PadV2=Module[\"_PadV2\"]=Module[\"asm\"][\"PadV2\"]).apply(null,arguments)};var _Pow=Module[\"_Pow\"]=function(){return(_Pow=Module[\"_Pow\"]=Module[\"asm\"][\"Pow\"]).apply(null,arguments)};var _Prelu=Module[\"_Prelu\"]=function(){return(_Prelu=Module[\"_Prelu\"]=Module[\"asm\"][\"Prelu\"]).apply(null,arguments)};var _Relu=Module[\"_Relu\"]=function(){return(_Relu=Module[\"_Relu\"]=Module[\"asm\"][\"Relu\"]).apply(null,arguments)};var _Relu6=Module[\"_Relu6\"]=function(){return(_Relu6=Module[\"_Relu6\"]=Module[\"asm\"][\"Relu6\"]).apply(null,arguments)};var _ResizeBilinear=Module[\"_ResizeBilinear\"]=function(){return(_ResizeBilinear=Module[\"_ResizeBilinear\"]=Module[\"asm\"][\"ResizeBilinear\"]).apply(null,arguments)};var _Reverse=Module[\"_Reverse\"]=function(){return(_Reverse=Module[\"_Reverse\"]=Module[\"asm\"][\"Reverse\"]).apply(null,arguments)};var _RotateWithOffset=Module[\"_RotateWithOffset\"]=function(){return(_RotateWithOffset=Module[\"_RotateWithOffset\"]=Module[\"asm\"][\"RotateWithOffset\"]).apply(null,arguments)};var _Rsqrt=Module[\"_Rsqrt\"]=function(){return(_Rsqrt=Module[\"_Rsqrt\"]=Module[\"asm\"][\"Rsqrt\"]).apply(null,arguments)};var _ScatterNd=Module[\"_ScatterNd\"]=function(){return(_ScatterNd=Module[\"_ScatterNd\"]=Module[\"asm\"][\"ScatterNd\"]).apply(null,arguments)};var _SelectV2=Module[\"_SelectV2\"]=function(){return(_SelectV2=Module[\"_SelectV2\"]=Module[\"asm\"][\"SelectV2\"]).apply(null,arguments)};var _Sigmoid=Module[\"_Sigmoid\"]=function(){return(_Sigmoid=Module[\"_Sigmoid\"]=Module[\"asm\"][\"Sigmoid\"]).apply(null,arguments)};var _Sin=Module[\"_Sin\"]=function(){return(_Sin=Module[\"_Sin\"]=Module[\"asm\"][\"Sin\"]).apply(null,arguments)};var _Softmax=Module[\"_Softmax\"]=function(){return(_Softmax=Module[\"_Softmax\"]=Module[\"asm\"][\"Softmax\"]).apply(null,arguments)};var _Sqrt=Module[\"_Sqrt\"]=function(){return(_Sqrt=Module[\"_Sqrt\"]=Module[\"asm\"][\"Sqrt\"]).apply(null,arguments)};var _Square=Module[\"_Square\"]=function(){return(_Square=Module[\"_Square\"]=Module[\"asm\"][\"Square\"]).apply(null,arguments)};var _SquaredDifference=Module[\"_SquaredDifference\"]=function(){return(_SquaredDifference=Module[\"_SquaredDifference\"]=Module[\"asm\"][\"SquaredDifference\"]).apply(null,arguments)};var _StridedSlice=Module[\"_StridedSlice\"]=function(){return(_StridedSlice=Module[\"_StridedSlice\"]=Module[\"asm\"][\"StridedSlice\"]).apply(null,arguments)};var _Sub=Module[\"_Sub\"]=function(){return(_Sub=Module[\"_Sub\"]=Module[\"asm\"][\"Sub\"]).apply(null,arguments)};var _Sum=Module[\"_Sum\"]=function(){return(_Sum=Module[\"_Sum\"]=Module[\"asm\"][\"Sum\"]).apply(null,arguments)};var _Tanh=Module[\"_Tanh\"]=function(){return(_Tanh=Module[\"_Tanh\"]=Module[\"asm\"][\"Tanh\"]).apply(null,arguments)};var _Tile=Module[\"_Tile\"]=function(){return(_Tile=Module[\"_Tile\"]=Module[\"asm\"][\"Tile\"]).apply(null,arguments)};var _Transpose=Module[\"_Transpose\"]=function(){return(_Transpose=Module[\"_Transpose\"]=Module[\"asm\"][\"Transpose\"]).apply(null,arguments)};var __FusedMatMul=Module[\"__FusedMatMul\"]=function(){return(__FusedMatMul=Module[\"__FusedMatMul\"]=Module[\"asm\"][\"_FusedMatMul\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"malloc\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"free\"]).apply(null,arguments)};var __start=Module[\"__start\"]=function(){return(__start=Module[\"__start\"]=Module[\"asm\"][\"_start\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"stackSave\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"stackAlloc\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"stackRestore\"]).apply(null,arguments)};Module[\"asm\"]=asm;Module[\"cwrap\"]=cwrap;var calledRun;Module[\"then\"]=function(func){if(calledRun){func(Module)}else{var old=Module[\"onRuntimeInitialized\"];Module[\"onRuntimeInitialized\"]=function(){if(old)old();func(Module)}}return Module};function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}var calledMain=false;dependenciesFulfilled=function runCaller(){if(!calledRun)run();if(!calledRun)dependenciesFulfilled=runCaller};function callMain(args){var entryFunction=Module[\"__start\"];try{entryFunction();var ret=0;exit(ret,true)}catch(e){if(e instanceof ExitStatus){return}else if(e==\"unwind\"){noExitRuntime=true;return}else{var toLog=e;if(e&&typeof e===\"object\"&&e.stack){toLog=[e,e.stack]}err(\"exception thrown: \"+toLog);quit_(1,e)}}finally{calledMain=true}}function run(args){args=args||arguments_;if(runDependencies>0){return}preRun();if(runDependencies>0)return;function doRun(){if(calledRun)return;calledRun=true;Module[\"calledRun\"]=true;if(ABORT)return;initRuntime();preMain();if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();if(shouldRunNow)callMain(args);postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}Module[\"run\"]=run;function exit(status,implicit){if(implicit&&noExitRuntime&&status===0){return}if(noExitRuntime){}else{ABORT=true;EXITSTATUS=status;exitRuntime();if(Module[\"onExit\"])Module[\"onExit\"](status)}quit_(status,new ExitStatus(status))}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}var shouldRunNow=true;if(Module[\"noInitialRun\"])shouldRunNow=false;noExitRuntime=true;run();\n\n\n return WasmBackendModule\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = WasmBackendModule;\n else if (typeof define === 'function' && define['amd'])\n define([], function() { return WasmBackendModule; });\n else if (typeof exports === 'object')\n exports[\"WasmBackendModule\"] = WasmBackendModule;\n ", null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null, "export const wasmWorkerContents = 'var threadInfoStruct=0;var selfThreadId=0;var parentThreadId=0;var Module={};function threadPrintErr(){var text=Array.prototype.slice.call(arguments).join(\" \");console.error(text)}function threadAlert(){var text=Array.prototype.slice.call(arguments).join(\" \");postMessage({cmd:\"alert\",text:text,threadId:selfThreadId})}var err=threadPrintErr;this.alert=threadAlert;Module[\"instantiateWasm\"]=function(info,receiveInstance){var instance=new WebAssembly.Instance(Module[\"wasmModule\"],info);Module[\"wasmModule\"]=null;receiveInstance(instance);return instance.exports};this.onmessage=function(e){try{if(e.data.cmd===\"load\"){Module[\"DYNAMIC_BASE\"]=e.data.DYNAMIC_BASE;Module[\"DYNAMICTOP_PTR\"]=e.data.DYNAMICTOP_PTR;Module[\"wasmModule\"]=e.data.wasmModule;Module[\"wasmMemory\"]=e.data.wasmMemory;Module[\"buffer\"]=Module[\"wasmMemory\"].buffer;Module[\"ENVIRONMENT_IS_PTHREAD\"]=true;if(typeof e.data.urlOrBlob===\"string\"){importScripts(e.data.urlOrBlob)}else{var objectUrl=URL.createObjectURL(e.data.urlOrBlob);importScripts(objectUrl);URL.revokeObjectURL(objectUrl)}Module=WasmBackendModuleThreadedSimd(Module);postMessage({\"cmd\":\"loaded\"})}else if(e.data.cmd===\"objectTransfer\"){Module[\"PThread\"].receiveObjectTransfer(e.data)}else if(e.data.cmd===\"run\"){Module[\"__performance_now_clock_drift\"]=performance.now()-e.data.time;threadInfoStruct=e.data.threadInfoStruct;Module[\"__register_pthread_ptr\"](threadInfoStruct,0,0);selfThreadId=e.data.selfThreadId;parentThreadId=e.data.parentThreadId;var max=e.data.stackBase;var top=e.data.stackBase+e.data.stackSize;Module[\"establishStackSpace\"](top,max);Module[\"_emscripten_tls_init\"]();Module[\"PThread\"].receiveObjectTransfer(e.data);Module[\"PThread\"].setThreadStatus(Module[\"_pthread_self\"](),1);try{var result=Module[\"dynCall_ii\"](e.data.start_routine,e.data.arg);if(!Module[\"getNoExitRuntime\"]())Module[\"PThread\"].threadExit(result)}catch(ex){if(ex===\"Canceled!\"){Module[\"PThread\"].threadCancel()}else if(ex!=\"unwind\"){Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+4>>2,ex instanceof Module[\"ExitStatus\"]?ex.status:-2);Atomics.store(Module[\"HEAPU32\"],threadInfoStruct+0>>2,1);Module[\"_emscripten_futex_wake\"](threadInfoStruct+0,2147483647);if(!(ex instanceof Module[\"ExitStatus\"]))throw ex}}}else if(e.data.cmd===\"cancel\"){if(threadInfoStruct){Module[\"PThread\"].threadCancel()}}else if(e.data.target===\"setimmediate\"){}else if(e.data.cmd===\"processThreadQueue\"){if(threadInfoStruct){Module[\"_emscripten_current_thread_process_queued_calls\"]()}}else{err(\"worker.js received unknown command \"+e.data.cmd);err(e.data)}}catch(ex){err(\"worker.js onmessage() captured an uncaught exception: \"+ex);if(ex.stack)err(ex.stack);throw ex}};if(typeof process===\"object\"&&typeof process.versions===\"object\"&&typeof process.versions.node===\"string\"){self={location:{href:__filename}};var onmessage=this.onmessage;var nodeWorkerThreads=require(\"worker_threads\");Worker=nodeWorkerThreads.Worker;var parentPort=nodeWorkerThreads.parentPort;parentPort.on(\"message\",function(data){onmessage({data:data})});var nodeFS=require(\"fs\");var nodeRead=function(filename){return nodeFS.readFileSync(filename,\"utf8\")};function globalEval(x){global.require=require;global.Module=Module;eval.call(null,x)}importScripts=function(f){globalEval(nodeRead(f))};postMessage=function(msg){parentPort.postMessage(msg)};if(typeof performance===\"undefined\"){performance={now:function(){return Date.now()}}}}';", null, null, null, null, "", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e \n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n// \n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n// \n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n\n\n(function(global, module, define) {\n\nfunction Alea(seed) {\n var me = this, mash = Mash();\n\n me.next = function() {\n var t = 2091639 * me.s0 + me.c * 2.3283064365386963e-10; // 2^-32\n me.s0 = me.s1;\n me.s1 = me.s2;\n return me.s2 = t - (me.c = t | 0);\n };\n\n // Apply the seeding algorithm from Baagoe.\n me.c = 1;\n me.s0 = mash(' ');\n me.s1 = mash(' ');\n me.s2 = mash(' ');\n me.s0 -= mash(seed);\n if (me.s0 < 0) { me.s0 += 1; }\n me.s1 -= mash(seed);\n if (me.s1 < 0) { me.s1 += 1; }\n me.s2 -= mash(seed);\n if (me.s2 < 0) { me.s2 += 1; }\n mash = null;\n}\n\nfunction copy(f, t) {\n t.c = f.c;\n t.s0 = f.s0;\n t.s1 = f.s1;\n t.s2 = f.s2;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new Alea(seed),\n state = opts && opts.state,\n prng = xg.next;\n prng.int32 = function() { return (xg.next() * 0x100000000) | 0; }\n prng.double = function() {\n return prng() + (prng() * 0x200000 | 0) * 1.1102230246251565e-16; // 2^-53\n };\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nfunction Mash() {\n var n = 0xefc8249d;\n\n var mash = function(data) {\n data = data.toString();\n for (var i = 0; i < data.length; i++) {\n n += data.charCodeAt(i);\n var h = 0.02519603282416938 * n;\n n = h >>> 0;\n h -= n;\n h *= n;\n n = h >>> 0;\n h -= n;\n n += h * 0x100000000; // 2^32\n }\n return (n >>> 0) * 2.3283064365386963e-10; // 2^-32\n };\n\n return mash;\n}\n\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.alea = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xor128\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n\n // Set up generator function.\n me.next = function() {\n var t = me.x ^ (me.x << 11);\n me.x = me.y;\n me.y = me.z;\n me.z = me.w;\n return me.w ^= (me.w >>> 19) ^ t ^ (t >>> 8);\n };\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor128 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorwow\" prng algorithm by\n// George Marsaglia. See http://www.jstatsoft.org/v08/i14/paper\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var t = (me.x ^ (me.x >>> 2));\n me.x = me.y; me.y = me.z; me.z = me.w; me.w = me.v;\n return (me.d = (me.d + 362437 | 0)) +\n (me.v = (me.v ^ (me.v << 4)) ^ (t ^ (t << 1))) | 0;\n };\n\n me.x = 0;\n me.y = 0;\n me.z = 0;\n me.w = 0;\n me.v = 0;\n\n if (seed === (seed | 0)) {\n // Integer seed.\n me.x = seed;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 64; k++) {\n me.x ^= strseed.charCodeAt(k) | 0;\n if (k == strseed.length) {\n me.d = me.x << 10 ^ me.x >>> 4;\n }\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.x = f.x;\n t.y = f.y;\n t.z = f.z;\n t.w = f.w;\n t.v = f.v;\n t.d = f.d;\n return t;\n}\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorwow = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "// A Javascript implementaion of the \"xorshift7\" algorithm by\n// Fran\u00E7ois Panneton and Pierre L'ecuyer:\n// \"On the Xorgshift Random Number Generators\"\n// http://saluc.engr.uconn.edu/refs/crypto/rng/panneton05onthexorshift.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n // Update xor generator.\n var X = me.x, i = me.i, t, v, w;\n t = X[i]; t ^= (t >>> 7); v = t ^ (t << 24);\n t = X[(i + 1) & 7]; v ^= t ^ (t >>> 10);\n t = X[(i + 3) & 7]; v ^= t ^ (t >>> 3);\n t = X[(i + 4) & 7]; v ^= t ^ (t << 7);\n t = X[(i + 7) & 7]; t = t ^ (t << 13); v ^= t ^ (t << 9);\n X[i] = v;\n me.i = (i + 1) & 7;\n return v;\n };\n\n function init(me, seed) {\n var j, w, X = [];\n\n if (seed === (seed | 0)) {\n // Seed state array using a 32-bit integer.\n w = X[0] = seed;\n } else {\n // Seed state using a string.\n seed = '' + seed;\n for (j = 0; j < seed.length; ++j) {\n X[j & 7] = (X[j & 7] << 15) ^\n (seed.charCodeAt(j) + X[(j + 1) & 7] << 13);\n }\n }\n // Enforce an array length of 8, not all zeroes.\n while (X.length < 8) X.push(0);\n for (j = 0; j < 8 && X[j] === 0; ++j);\n if (j == 8) w = X[7] = -1; else w = X[j];\n\n me.x = X;\n me.i = 0;\n\n // Discard an initial 256 values.\n for (j = 256; j > 0; --j) {\n me.next();\n }\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.x = f.x.slice();\n t.i = f.i;\n return t;\n}\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.x) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xorshift7 = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n", "// A Javascript implementaion of Richard Brent's Xorgens xor4096 algorithm.\n//\n// This fast non-cryptographic random number generator is designed for\n// use in Monte-Carlo algorithms. It combines a long-period xorshift\n// generator with a Weyl generator, and it passes all common batteries\n// of stasticial tests for randomness while consuming only a few nanoseconds\n// for each prng generated. For background on the generator, see Brent's\n// paper: \"Some long-period random number generators using shifts and xors.\"\n// http://arxiv.org/pdf/1004.3115v1.pdf\n//\n// Usage:\n//\n// var xor4096 = require('xor4096');\n// random = xor4096(1); // Seed with int32 or string.\n// assert.equal(random(), 0.1520436450538547); // (0, 1) range, 53 bits.\n// assert.equal(random.int32(), 1806534897); // signed int32, 32 bits.\n//\n// For nonzero numeric keys, this impelementation provides a sequence\n// identical to that by Brent's xorgens 3 implementaion in C. This\n// implementation also provides for initalizing the generator with\n// string seeds, or for saving and restoring the state of the generator.\n//\n// On Chrome, this prng benchmarks about 2.1 times slower than\n// Javascript's built-in Math.random().\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this;\n\n // Set up generator function.\n me.next = function() {\n var w = me.w,\n X = me.X, i = me.i, t, v;\n // Update Weyl generator.\n me.w = w = (w + 0x61c88647) | 0;\n // Update xor generator.\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n // Update Xor generator array state.\n v = X[i] = v ^ t;\n me.i = i;\n // Result is the combination.\n return (v + (w ^ (w >>> 16))) | 0;\n };\n\n function init(me, seed) {\n var t, v, i, j, w, X = [], limit = 128;\n if (seed === (seed | 0)) {\n // Numeric seeds initialize v, which is used to generates X.\n v = seed;\n seed = null;\n } else {\n // String seeds are mixed into v and X one character at a time.\n seed = seed + '\\0';\n v = 0;\n limit = Math.max(limit, seed.length);\n }\n // Initialize circular array and weyl value.\n for (i = 0, j = -32; j < limit; ++j) {\n // Put the unicode characters into the array, and shuffle them.\n if (seed) v ^= seed.charCodeAt((j + 32) % seed.length);\n // After 32 shuffles, take v as the starting w value.\n if (j === 0) w = v;\n v ^= v << 10;\n v ^= v >>> 15;\n v ^= v << 4;\n v ^= v >>> 13;\n if (j >= 0) {\n w = (w + 0x61c88647) | 0; // Weyl.\n t = (X[j & 127] ^= (v + w)); // Combine xor and weyl to init array.\n i = (0 == t) ? i + 1 : 0; // Count zeroes.\n }\n }\n // We have detected all zeroes; make the key nonzero.\n if (i >= 128) {\n X[(seed && seed.length || 0) & 127] = -1;\n }\n // Run the generator 512 times to further mix the state before using it.\n // Factoring this as a function slows the main generator, so it is just\n // unrolled here. The weyl generator is not advanced while warming up.\n i = 127;\n for (j = 4 * 128; j > 0; --j) {\n v = X[(i + 34) & 127];\n t = X[i = ((i + 1) & 127)];\n v ^= v << 13;\n t ^= t << 17;\n v ^= v >>> 15;\n t ^= t >>> 12;\n X[i] = v ^ t;\n }\n // Storing state as object members is faster than using closure variables.\n me.w = w;\n me.X = X;\n me.i = i;\n }\n\n init(me, seed);\n}\n\nfunction copy(f, t) {\n t.i = f.i;\n t.w = f.w;\n t.X = f.X.slice();\n return t;\n};\n\nfunction impl(seed, opts) {\n if (seed == null) seed = +(new Date);\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (state.X) copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.xor4096 = impl;\n}\n\n})(\n this, // window object or global\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n", "// A Javascript implementaion of the \"Tyche-i\" prng algorithm by\n// Samuel Neves and Filipe Araujo.\n// See https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n\n(function(global, module, define) {\n\nfunction XorGen(seed) {\n var me = this, strseed = '';\n\n // Set up generator function.\n me.next = function() {\n var b = me.b, c = me.c, d = me.d, a = me.a;\n b = (b << 25) ^ (b >>> 7) ^ c;\n c = (c - d) | 0;\n d = (d << 24) ^ (d >>> 8) ^ a;\n a = (a - b) | 0;\n me.b = b = (b << 20) ^ (b >>> 12) ^ c;\n me.c = c = (c - d) | 0;\n me.d = (d << 16) ^ (c >>> 16) ^ a;\n return me.a = (a - b) | 0;\n };\n\n /* The following is non-inverted tyche, which has better internal\n * bit diffusion, but which is about 25% slower than tyche-i in JS.\n me.next = function() {\n var a = me.a, b = me.b, c = me.c, d = me.d;\n a = (me.a + me.b | 0) >>> 0;\n d = me.d ^ a; d = d << 16 ^ d >>> 16;\n c = me.c + d | 0;\n b = me.b ^ c; b = b << 12 ^ d >>> 20;\n me.a = a = a + b | 0;\n d = d ^ a; me.d = d = d << 8 ^ d >>> 24;\n me.c = c = c + d | 0;\n b = b ^ c;\n return me.b = (b << 7 ^ b >>> 25);\n }\n */\n\n me.a = 0;\n me.b = 0;\n me.c = 2654435769 | 0;\n me.d = 1367130551;\n\n if (seed === Math.floor(seed)) {\n // Integer seed.\n me.a = (seed / 0x100000000) | 0;\n me.b = seed | 0;\n } else {\n // String seed.\n strseed += seed;\n }\n\n // Mix in string seed, then discard an initial batch of 64 values.\n for (var k = 0; k < strseed.length + 20; k++) {\n me.b ^= strseed.charCodeAt(k) | 0;\n me.next();\n }\n}\n\nfunction copy(f, t) {\n t.a = f.a;\n t.b = f.b;\n t.c = f.c;\n t.d = f.d;\n return t;\n};\n\nfunction impl(seed, opts) {\n var xg = new XorGen(seed),\n state = opts && opts.state,\n prng = function() { return (xg.next() >>> 0) / 0x100000000; };\n prng.double = function() {\n do {\n var top = xg.next() >>> 11,\n bot = (xg.next() >>> 0) / 0x100000000,\n result = (top + bot) / (1 << 21);\n } while (result === 0);\n return result;\n };\n prng.int32 = xg.next;\n prng.quick = prng;\n if (state) {\n if (typeof(state) == 'object') copy(state, xg);\n prng.state = function() { return copy(xg, {}); }\n }\n return prng;\n}\n\nif (module && module.exports) {\n module.exports = impl;\n} else if (define && define.amd) {\n define(function() { return impl; });\n} else {\n this.tychei = impl;\n}\n\n})(\n this,\n (typeof module) == 'object' && module, // present in node.js\n (typeof define) == 'function' && define // present with an AMD loader\n);\n\n\n", "", "/*\nCopyright 2014 David Bau.\n\nPermission is hereby granted, free of charge, to any person obtaining\na copy of this software and associated documentation files (the\n\"Software\"), to deal in the Software without restriction, including\nwithout limitation the rights to use, copy, modify, merge, publish,\ndistribute, sublicense, and/or sell copies of the Software, and to\npermit persons to whom the Software is furnished to do so, subject to\nthe following conditions:\n\nThe above copyright notice and this permission notice shall be\nincluded in all copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\nEXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\nMERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\nIN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\nCLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\nTORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\nSOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n*/\n\n(function (pool, math) {\n//\n// The following constants are related to IEEE 754 limits.\n//\nvar global = this,\n width = 256, // each RC4 output is 0 <= x < 256\n chunks = 6, // at least six RC4 outputs for each double\n digits = 52, // there are 52 significant digits in a double\n rngname = 'random', // rngname: name for Math.random and Math.seedrandom\n startdenom = math.pow(width, chunks),\n significance = math.pow(2, digits),\n overflow = significance * 2,\n mask = width - 1,\n nodecrypto; // node.js crypto module, initialized at the bottom.\n\n//\n// seedrandom()\n// This is the seedrandom function described above.\n//\nfunction seedrandom(seed, options, callback) {\n var key = [];\n options = (options == true) ? { entropy: true } : (options || {});\n\n // Flatten the seed string or build one from local entropy if needed.\n var shortseed = mixkey(flatten(\n options.entropy ? [seed, tostring(pool)] :\n (seed == null) ? autoseed() : seed, 3), key);\n\n // Use the seed to initialize an ARC4 generator.\n var arc4 = new ARC4(key);\n\n // This function returns a random double in [0, 1) that contains\n // randomness in every bit of the mantissa of the IEEE 754 value.\n var prng = function() {\n var n = arc4.g(chunks), // Start with a numerator n < 2 ^ 48\n d = startdenom, // and denominator d = 2 ^ 48.\n x = 0; // and no 'extra last byte'.\n while (n < significance) { // Fill up all significant digits by\n n = (n + x) * width; // shifting numerator and\n d *= width; // denominator and generating a\n x = arc4.g(1); // new least-significant-byte.\n }\n while (n >= overflow) { // To avoid rounding up, before adding\n n /= 2; // last byte, shift everything\n d /= 2; // right using integer math until\n x >>>= 1; // we have exactly the desired bits.\n }\n return (n + x) / d; // Form the number within [0, 1).\n };\n\n prng.int32 = function() { return arc4.g(4) | 0; }\n prng.quick = function() { return arc4.g(4) / 0x100000000; }\n prng.double = prng;\n\n // Mix the randomness into accumulated entropy.\n mixkey(tostring(arc4.S), pool);\n\n // Calling convention: what to return as a function of prng, seed, is_math.\n return (options.pass || callback ||\n function(prng, seed, is_math_call, state) {\n if (state) {\n // Load the arc4 state from the given state if it has an S array.\n if (state.S) { copy(state, arc4); }\n // Only provide the .state method if requested via options.state.\n prng.state = function() { return copy(arc4, {}); }\n }\n\n // If called as a method of Math (Math.seedrandom()), mutate\n // Math.random because that is how seedrandom.js has worked since v1.0.\n if (is_math_call) { math[rngname] = prng; return seed; }\n\n // Otherwise, it is a newer calling convention, so return the\n // prng directly.\n else return prng;\n })(\n prng,\n shortseed,\n 'global' in options ? options.global : (this == math),\n options.state);\n}\nmath['seed' + rngname] = seedrandom;\n\n//\n// ARC4\n//\n// An ARC4 implementation. The constructor takes a key in the form of\n// an array of at most (width) integers that should be 0 <= x < (width).\n//\n// The g(count) method returns a pseudorandom integer that concatenates\n// the next (count) outputs from ARC4. Its return value is a number x\n// that is in the range 0 <= x < (width ^ count).\n//\nfunction ARC4(key) {\n var t, keylen = key.length,\n me = this, i = 0, j = me.i = me.j = 0, s = me.S = [];\n\n // The empty key [] is treated as [0].\n if (!keylen) { key = [keylen++]; }\n\n // Set up S using the standard key scheduling algorithm.\n while (i < width) {\n s[i] = i++;\n }\n for (i = 0; i < width; i++) {\n s[i] = s[j = mask & (j + key[i % keylen] + (t = s[i]))];\n s[j] = t;\n }\n\n // The \"g\" method returns the next (count) outputs as one number.\n (me.g = function(count) {\n // Using instance members instead of closure state nearly doubles speed.\n var t, r = 0,\n i = me.i, j = me.j, s = me.S;\n while (count--) {\n t = s[i = mask & (i + 1)];\n r = r * width + s[mask & ((s[i] = s[j = mask & (j + t)]) + (s[j] = t))];\n }\n me.i = i; me.j = j;\n return r;\n // For robust unpredictability, the function call below automatically\n // discards an initial batch of values. This is called RC4-drop[256].\n // See http://google.com/search?q=rsa+fluhrer+response&btnI\n })(width);\n}\n\n//\n// copy()\n// Copies internal state of ARC4 to or from a plain object.\n//\nfunction copy(f, t) {\n t.i = f.i;\n t.j = f.j;\n t.S = f.S.slice();\n return t;\n};\n\n//\n// flatten()\n// Converts an object tree to nested arrays of strings.\n//\nfunction flatten(obj, depth) {\n var result = [], typ = (typeof obj), prop;\n if (depth && typ == 'object') {\n for (prop in obj) {\n try { result.push(flatten(obj[prop], depth - 1)); } catch (e) {}\n }\n }\n return (result.length ? result : typ == 'string' ? obj : obj + '\\0');\n}\n\n//\n// mixkey()\n// Mixes a string seed into a key that is an array of integers, and\n// returns a shortened string seed that is equivalent to the result key.\n//\nfunction mixkey(seed, key) {\n var stringseed = seed + '', smear, j = 0;\n while (j < stringseed.length) {\n key[mask & j] =\n mask & ((smear ^= key[mask & j] * 19) + stringseed.charCodeAt(j++));\n }\n return tostring(key);\n}\n\n//\n// autoseed()\n// Returns an object for autoseeding, using window.crypto and Node crypto\n// module if available.\n//\nfunction autoseed() {\n try {\n var out;\n if (nodecrypto && (out = nodecrypto.randomBytes)) {\n // The use of 'out' to remember randomBytes makes tight minified code.\n out = out(width);\n } else {\n out = new Uint8Array(width);\n (global.crypto || global.msCrypto).getRandomValues(out);\n }\n return tostring(out);\n } catch (e) {\n var browser = global.navigator,\n plugins = browser && browser.plugins;\n return [+new Date, global, plugins, global.screen, tostring(pool)];\n }\n}\n\n//\n// tostring()\n// Converts an array of charcodes to a string\n//\nfunction tostring(a) {\n return String.fromCharCode.apply(0, a);\n}\n\n//\n// When seedrandom.js is loaded, we immediately mix a few bits\n// from the built-in RNG into the entropy pool. Because we do\n// not want to interfere with deterministic PRNG state later,\n// seedrandom will not call math.random on its own again after\n// initialization.\n//\nmixkey(math.random(), pool);\n\n//\n// Nodejs and AMD support: export the implementation as a module using\n// either convention.\n//\nif ((typeof module) == 'object' && module.exports) {\n module.exports = seedrandom;\n // When in node.js, try using crypto package for autoseeding.\n try {\n nodecrypto = require('crypto');\n } catch (ex) {}\n} else if ((typeof define) == 'function' && define.amd) {\n define(function() { return seedrandom; });\n}\n\n// End anonymous scope, and pass initial values.\n})(\n [], // pool: entropy pool starts empty\n Math // math: package containing random, pow, and seedrandom\n);\n", "// A library of seedable RNGs implemented in Javascript.\n//\n// Usage:\n//\n// var seedrandom = require('seedrandom');\n// var random = seedrandom(1); // or any seed.\n// var x = random(); // 0 <= x < 1. Every bit is random.\n// var x = random.quick(); // 0 <= x < 1. 32 bits of randomness.\n\n// alea, a 53-bit multiply-with-carry generator by Johannes Baag\u00F8e.\n// Period: ~2^116\n// Reported to pass all BigCrush tests.\nvar alea = require('./lib/alea');\n\n// xor128, a pure xor-shift generator by George Marsaglia.\n// Period: 2^128-1.\n// Reported to fail: MatrixRank and LinearComp.\nvar xor128 = require('./lib/xor128');\n\n// xorwow, George Marsaglia's 160-bit xor-shift combined plus weyl.\n// Period: 2^192-2^32\n// Reported to fail: CollisionOver, SimpPoker, and LinearComp.\nvar xorwow = require('./lib/xorwow');\n\n// xorshift7, by Fran\u00E7ois Panneton and Pierre L'ecuyer, takes\n// a different approach: it adds robustness by allowing more shifts\n// than Marsaglia's original three. It is a 7-shift generator\n// with 256 bits, that passes BigCrush with no systmatic failures.\n// Period 2^256-1.\n// No systematic BigCrush failures reported.\nvar xorshift7 = require('./lib/xorshift7');\n\n// xor4096, by Richard Brent, is a 4096-bit xor-shift with a\n// very long period that also adds a Weyl generator. It also passes\n// BigCrush with no systematic failures. Its long period may\n// be useful if you have many generators and need to avoid\n// collisions.\n// Period: 2^4128-2^32.\n// No systematic BigCrush failures reported.\nvar xor4096 = require('./lib/xor4096');\n\n// Tyche-i, by Samuel Neves and Filipe Araujo, is a bit-shifting random\n// number generator derived from ChaCha, a modern stream cipher.\n// https://eden.dei.uc.pt/~sneves/pubs/2011-snfa2.pdf\n// Period: ~2^127\n// No systematic BigCrush failures reported.\nvar tychei = require('./lib/tychei');\n\n// The original ARC4-based prng included in this library.\n// Period: ~2^1600\nvar sr = require('./seedrandom');\n\nsr.alea = alea;\nsr.xor128 = xor128;\nsr.xorwow = xorwow;\nsr.xorshift7 = xorshift7;\nsr.xor4096 = xor4096;\nsr.tychei = tychei;\n\nmodule.exports = sr;\n", "// A port of an algorithm by Johannes Baag\u00F8e , 2010\n// http://baagoe.com/en/RandomMusings/javascript/\n// https://github.com/nquinlan/better-random-numbers-for-javascript-mirror\n// Original work is under MIT license -\n\n// Copyright (C) 2010 by Johannes Baag\u00F8e