@cornerstonejs/dicom-image-loader 2.0.0-beta.2 → 2.0.0-beta.21
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/920.bundle.min.js +3 -0
- package/dist/920.bundle.min.js.LICENSE.txt +5 -0
- package/dist/920.bundle.min.js.map +1 -0
- package/dist/cornerstoneDICOMImageLoader.bundle.min.js +1 -1
- package/dist/cornerstoneDICOMImageLoader.bundle.min.js.map +1 -1
- package/dist/dynamic-import/{65916ef3def695744bda.wasm → 031089e563a18ada8441.wasm} +0 -0
- package/dist/dynamic-import/20fc4c659b85ccd2a9c0.wasm +0 -0
- package/dist/dynamic-import/584.min.js +2 -0
- package/dist/dynamic-import/584.min.js.map +1 -0
- package/dist/dynamic-import/610.min.js +2 -0
- package/dist/dynamic-import/610.min.js.map +1 -0
- package/dist/dynamic-import/918.min.js +2 -0
- package/dist/dynamic-import/918.min.js.map +1 -0
- package/dist/dynamic-import/958.min.js +3 -0
- package/dist/dynamic-import/958.min.js.LICENSE.txt +5 -0
- package/dist/dynamic-import/958.min.js.map +1 -0
- package/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js +1 -1
- package/dist/dynamic-import/cornerstoneDICOMImageLoader.min.js.map +1 -1
- package/dist/esm/codecs/jpeg.d.ts +1 -0
- package/dist/esm/codecs/jpeg.js +890 -0
- package/dist/esm/codecs/jpegLossless.d.ts +7 -0
- package/dist/esm/codecs/jpegLossless.js +1219 -0
- package/dist/esm/src/constants/transferSyntaxes.d.ts +46 -0
- package/dist/esm/src/constants/transferSyntaxes.js +46 -0
- package/dist/esm/src/decodeImageFrameWorker.d.ts +1 -0
- package/dist/esm/src/decodeImageFrameWorker.js +262 -0
- package/dist/esm/src/externalModules.d.ts +5 -0
- package/dist/esm/src/externalModules.js +44 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.d.ts +3 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertPALETTECOLOR.js +77 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.d.ts +2 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPixel.js +21 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.d.ts +2 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertRGBColorByPlane.js +28 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.d.ts +2 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFull422ByPixel.js +44 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.d.ts +2 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPixel.js +33 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.d.ts +2 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/convertYBRFullByPlane.js +35 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/index.d.ts +7 -0
- package/dist/esm/src/imageLoader/colorSpaceConverters/index.js +7 -0
- package/dist/esm/src/imageLoader/configure.d.ts +3 -0
- package/dist/esm/src/imageLoader/configure.js +11 -0
- package/dist/esm/src/imageLoader/convertColorSpace.d.ts +1 -0
- package/dist/esm/src/imageLoader/convertColorSpace.js +40 -0
- package/dist/esm/src/imageLoader/createImage.d.ts +5 -0
- package/dist/esm/src/imageLoader/createImage.js +241 -0
- package/dist/esm/src/imageLoader/decodeImageFrame.d.ts +3 -0
- package/dist/esm/src/imageLoader/decodeImageFrame.js +63 -0
- package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.d.ts +4 -0
- package/dist/esm/src/imageLoader/decodeJPEGBaseline8BitColor.js +64 -0
- package/dist/esm/src/imageLoader/getImageFrame.d.ts +3 -0
- package/dist/esm/src/imageLoader/getImageFrame.js +26 -0
- package/dist/esm/src/imageLoader/getInstanceModule.d.ts +3 -0
- package/dist/esm/src/imageLoader/getInstanceModule.js +40 -0
- package/dist/esm/src/imageLoader/getMinMax.d.ts +4 -0
- package/dist/esm/src/imageLoader/getMinMax.js +15 -0
- package/dist/esm/src/imageLoader/getScalingParameters.d.ts +6 -0
- package/dist/esm/src/imageLoader/getScalingParameters.js +16 -0
- package/dist/esm/src/imageLoader/imageIdToURI.d.ts +1 -0
- package/dist/esm/src/imageLoader/imageIdToURI.js +4 -0
- package/dist/esm/src/imageLoader/index.d.ts +94 -0
- package/dist/esm/src/imageLoader/index.js +36 -0
- package/dist/esm/src/imageLoader/internal/index.d.ts +10 -0
- package/dist/esm/src/imageLoader/internal/index.js +10 -0
- package/dist/esm/src/imageLoader/internal/options.d.ts +3 -0
- package/dist/esm/src/imageLoader/internal/options.js +19 -0
- package/dist/esm/src/imageLoader/internal/rangeRequest.d.ts +9 -0
- package/dist/esm/src/imageLoader/internal/rangeRequest.js +121 -0
- package/dist/esm/src/imageLoader/internal/streamRequest.d.ts +2 -0
- package/dist/esm/src/imageLoader/internal/streamRequest.js +92 -0
- package/dist/esm/src/imageLoader/internal/xhrRequest.d.ts +3 -0
- package/dist/esm/src/imageLoader/internal/xhrRequest.js +102 -0
- package/dist/esm/src/imageLoader/isColorConversionRequired.d.ts +1 -0
- package/dist/esm/src/imageLoader/isColorConversionRequired.js +22 -0
- package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.d.ts +3 -0
- package/dist/esm/src/imageLoader/isJPEGBaseline8BitColor.js +9 -0
- package/dist/esm/src/imageLoader/isNMReconstructable.d.ts +1 -0
- package/dist/esm/src/imageLoader/isNMReconstructable.js +3 -0
- package/dist/esm/src/imageLoader/registerLoaders.d.ts +2 -0
- package/dist/esm/src/imageLoader/registerLoaders.js +7 -0
- package/dist/esm/src/imageLoader/wadors/combineFrameInstance.d.ts +12 -0
- package/dist/esm/src/imageLoader/wadors/combineFrameInstance.js +44 -0
- package/dist/esm/src/imageLoader/wadors/extractMultipart.d.ts +23 -0
- package/dist/esm/src/imageLoader/wadors/extractMultipart.js +73 -0
- package/dist/esm/src/imageLoader/wadors/findIndexOfString.d.ts +2 -0
- package/dist/esm/src/imageLoader/wadors/findIndexOfString.js +32 -0
- package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadors/getImageQualityStatus.js +8 -0
- package/dist/esm/src/imageLoader/wadors/getPixelData.d.ts +26 -0
- package/dist/esm/src/imageLoader/wadors/getPixelData.js +35 -0
- package/dist/esm/src/imageLoader/wadors/getTagValue.d.ts +1 -0
- package/dist/esm/src/imageLoader/wadors/getTagValue.js +9 -0
- package/dist/esm/src/imageLoader/wadors/index.d.ts +25 -0
- package/dist/esm/src/imageLoader/wadors/index.js +21 -0
- package/dist/esm/src/imageLoader/wadors/loadImage.d.ts +25 -0
- package/dist/esm/src/imageLoader/wadors/loadImage.js +125 -0
- package/dist/esm/src/imageLoader/wadors/loadImage_test.d.ts +1 -0
- package/dist/esm/src/imageLoader/wadors/loadImage_test.js +41 -0
- package/dist/esm/src/imageLoader/wadors/metaData/NMHelpers.d.ts +5 -0
- package/dist/esm/src/imageLoader/wadors/metaData/NMHelpers.js +38 -0
- package/dist/esm/src/imageLoader/wadors/metaData/USHelpers.d.ts +19 -0
- package/dist/esm/src/imageLoader/wadors/metaData/USHelpers.js +46 -0
- package/dist/esm/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadors/metaData/extractPositioningFromMetadata.js +18 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.d.ts +2 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getFirstNumberValue.js +6 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberString.js +9 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValue.js +9 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getNumberValues.js +20 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.d.ts +4 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getOverlayPlaneModule.js +38 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getSequenceItems.js +14 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getValue.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadors/metaData/getValue.js +14 -0
- package/dist/esm/src/imageLoader/wadors/metaData/index.d.ts +7 -0
- package/dist/esm/src/imageLoader/wadors/metaData/index.js +7 -0
- package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.d.ts +14 -0
- package/dist/esm/src/imageLoader/wadors/metaData/metaDataProvider.js +261 -0
- package/dist/esm/src/imageLoader/wadors/metaDataManager.d.ts +14 -0
- package/dist/esm/src/imageLoader/wadors/metaDataManager.js +50 -0
- package/dist/esm/src/imageLoader/wadors/register.d.ts +1 -0
- package/dist/esm/src/imageLoader/wadors/register.js +6 -0
- package/dist/esm/src/imageLoader/wadors/retrieveMultiframeMetadata.d.ts +15 -0
- package/dist/esm/src/imageLoader/wadors/retrieveMultiframeMetadata.js +26 -0
- package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.d.ts +22 -0
- package/dist/esm/src/imageLoader/wadouri/combineFrameInstanceDataset.js +69 -0
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.d.ts +31 -0
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager.js +142 -0
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager_test.d.ts +1 -0
- package/dist/esm/src/imageLoader/wadouri/dataSetCacheManager_test.js +10 -0
- package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.d.ts +6 -0
- package/dist/esm/src/imageLoader/wadouri/dataset-from-partial-content.js +56 -0
- package/dist/esm/src/imageLoader/wadouri/fileManager.d.ts +11 -0
- package/dist/esm/src/imageLoader/wadouri/fileManager.js +20 -0
- package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.d.ts +2 -0
- package/dist/esm/src/imageLoader/wadouri/getEncapsulatedImageFrame.js +33 -0
- package/dist/esm/src/imageLoader/wadouri/getPixelData.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadouri/getPixelData.js +13 -0
- package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadouri/getUncompressedImageFrame.js +47 -0
- package/dist/esm/src/imageLoader/wadouri/index.d.ts +42 -0
- package/dist/esm/src/imageLoader/wadouri/index.js +31 -0
- package/dist/esm/src/imageLoader/wadouri/loadFileRequest.d.ts +2 -0
- package/dist/esm/src/imageLoader/wadouri/loadFileRequest.js +17 -0
- package/dist/esm/src/imageLoader/wadouri/loadImage.d.ts +9 -0
- package/dist/esm/src/imageLoader/wadouri/loadImage.js +104 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/USHelpers.d.ts +2 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/USHelpers.js +44 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.d.ts +6 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/extractPositioningFromDataset.js +80 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.d.ts +4 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getImagePixelModule.js +79 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.d.ts +4 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getLUTs.js +44 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getModalityLUTOutputPixelRepresentation.js +30 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getNumberValues.js +16 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.d.ts +4 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/getOverlayPlaneModule.js +36 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/index.d.ts +5 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/index.js +5 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.d.ts +2 -0
- package/dist/esm/src/imageLoader/wadouri/metaData/metaDataProvider.js +223 -0
- package/dist/esm/src/imageLoader/wadouri/parseImageId.d.ts +8 -0
- package/dist/esm/src/imageLoader/wadouri/parseImageId.js +20 -0
- package/dist/esm/src/imageLoader/wadouri/register.d.ts +2 -0
- package/dist/esm/src/imageLoader/wadouri/register.js +8 -0
- package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.d.ts +17 -0
- package/dist/esm/src/imageLoader/wadouri/retrieveMultiframeDataset.js +57 -0
- package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.d.ts +3 -0
- package/dist/esm/src/imageLoader/wadouri/unpackBinaryFrame.js +14 -0
- package/dist/esm/src/shared/decoders/decodeBigEndian.d.ts +4 -0
- package/dist/esm/src/shared/decoders/decodeBigEndian.js +28 -0
- package/dist/esm/src/shared/decoders/decodeHTJ2K.d.ts +5 -0
- package/dist/esm/src/shared/decoders/decodeHTJ2K.js +109 -0
- package/dist/esm/src/shared/decoders/decodeJPEG2000.d.ts +5 -0
- package/dist/esm/src/shared/decoders/decodeJPEG2000.js +93 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.d.ts +6 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-js.js +34 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.d.ts +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline12Bit-wasm-not-yet-working.js +1 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.d.ts +3 -0
- package/dist/esm/src/shared/decoders/decodeJPEGBaseline8Bit.js +62 -0
- package/dist/esm/src/shared/decoders/decodeJPEGLS.d.ts +5 -0
- package/dist/esm/src/shared/decoders/decodeJPEGLS.js +84 -0
- package/dist/esm/src/shared/decoders/decodeJPEGLossless.d.ts +6 -0
- package/dist/esm/src/shared/decoders/decodeJPEGLossless.js +39 -0
- package/dist/esm/src/shared/decoders/decodeLittleEndian.d.ts +4 -0
- package/dist/esm/src/shared/decoders/decodeLittleEndian.js +29 -0
- package/dist/esm/src/shared/decoders/decodeRLE.d.ts +4 -0
- package/dist/esm/src/shared/decoders/decodeRLE.js +128 -0
- package/dist/esm/src/shared/getMinMax.d.ts +6 -0
- package/dist/esm/src/shared/getMinMax.js +16 -0
- package/dist/esm/src/shared/getMinMax_test.d.ts +1 -0
- package/dist/esm/src/shared/getMinMax_test.js +9 -0
- package/dist/esm/src/shared/getPixelDataTypeFromMinMax.d.ts +2 -0
- package/dist/esm/src/shared/getPixelDataTypeFromMinMax.js +22 -0
- package/dist/esm/src/shared/isColorImage.d.ts +1 -0
- package/dist/esm/src/shared/isColorImage.js +10 -0
- package/dist/esm/src/shared/scaling/bilinear.d.ts +1 -0
- package/dist/esm/src/shared/scaling/bilinear.js +32 -0
- package/dist/esm/src/shared/scaling/replicate.d.ts +1 -0
- package/dist/esm/src/shared/scaling/replicate.js +20 -0
- package/dist/esm/src/shared/scaling/scaleArray.d.ts +2 -0
- package/dist/esm/src/shared/scaling/scaleArray.js +15 -0
- package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.d.ts +9 -0
- package/dist/esm/src/types/DICOMLoaderDataSetWithFetchMore.js +1 -0
- package/dist/esm/src/types/DICOMLoaderIImage.d.ts +12 -0
- package/dist/esm/src/types/DICOMLoaderIImage.js +1 -0
- package/dist/esm/src/types/DICOMLoaderImageOptions.d.ts +23 -0
- package/dist/esm/src/types/DICOMLoaderImageOptions.js +1 -0
- package/dist/esm/src/types/LoadRequestFunction.d.ts +1 -0
- package/dist/esm/src/types/LoadRequestFunction.js +1 -0
- package/dist/esm/src/types/LoaderDecodeOptions.d.ts +2 -0
- package/dist/esm/src/types/LoaderDecodeOptions.js +1 -0
- package/dist/esm/src/types/LoaderOptions.d.ts +18 -0
- package/dist/esm/src/types/LoaderOptions.js +1 -0
- package/dist/esm/src/types/LutType.d.ts +6 -0
- package/dist/esm/src/types/LutType.js +1 -0
- package/dist/esm/src/types/WADORSMetaData.d.ts +4 -0
- package/dist/esm/src/types/WADORSMetaData.js +1 -0
- package/dist/esm/src/types/WebWorkerTypes.d.ts +64 -0
- package/dist/esm/src/types/WebWorkerTypes.js +1 -0
- package/dist/esm/src/types/XHRRequest.d.ts +16 -0
- package/dist/esm/src/types/XHRRequest.js +1 -0
- package/dist/esm/src/types/index.d.ts +11 -0
- package/dist/esm/src/types/index.js +1 -0
- package/dist/esm/src/version.d.ts +2 -0
- package/dist/esm/src/version.js +1 -0
- package/package.json +24 -17
- package/dist/cornerstoneDICOMImageLoaderNoWebWorkers.bundle.min.js +0 -2
- package/dist/cornerstoneDICOMImageLoaderNoWebWorkers.bundle.min.js.map +0 -1
- package/dist/dynamic-import/610.min.worker.js +0 -2
- package/dist/dynamic-import/610.min.worker.js.map +0 -1
- package/dist/dynamic-import/75788f12450d4c5ed494.wasm +0 -0
- package/dist/dynamic-import/945.min.worker.js +0 -2
- package/dist/dynamic-import/945.min.worker.js.map +0 -1
- package/dist/dynamic-import/index.worker.e62ecca63f1a2e124230.worker.js +0 -2
- package/dist/dynamic-import/index.worker.e62ecca63f1a2e124230.worker.js.map +0 -1
- package/dist/index.worker.bundle.min.worker.js +0 -2
- package/dist/index.worker.bundle.min.worker.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"920.bundle.min.js","mappings":"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","sources":["webpack://cornerstoneDICOMImageLoader/webpack/universalModuleDefinition","webpack://cornerstoneDICOMImageLoader/webpack/runtime/create fake namespace object","webpack://cornerstoneDICOMImageLoader/../../../node_modules/@cornerstonejs/codec-charls/dist/charlswasm_decode.js","webpack://cornerstoneDICOMImageLoader/../../../node_modules/@cornerstonejs/codec-libjpeg-turbo-8bit/dist/libjpegturbowasm_decode.js","webpack://cornerstoneDICOMImageLoader/../../../node_modules/@cornerstonejs/codec-openjpeg/dist/openjpegwasm_decode.js","webpack://cornerstoneDICOMImageLoader/../../../node_modules/@cornerstonejs/codec-openjph/dist/openjphjs.js","webpack://cornerstoneDICOMImageLoader/../codecs/jpeg.js","webpack://cornerstoneDICOMImageLoader/../codecs/jpegLossless.js","webpack://cornerstoneDICOMImageLoader/webpack/bootstrap","webpack://cornerstoneDICOMImageLoader/webpack/runtime/compat get default export","webpack://cornerstoneDICOMImageLoader/webpack/runtime/define property getters","webpack://cornerstoneDICOMImageLoader/webpack/runtime/hasOwnProperty shorthand","webpack://cornerstoneDICOMImageLoader/webpack/runtime/make namespace object","webpack://cornerstoneDICOMImageLoader/webpack/runtime/importScripts chunk loading","webpack://cornerstoneDICOMImageLoader/../../../node_modules/comlink/dist/esm/comlink.mjs","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeLittleEndian.ts","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeBigEndian.ts","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeRLE.ts","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeJPEGBaseline8Bit.ts","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeJPEGBaseline12Bit-js.ts","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeJPEGLossless.ts","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeJPEGLS.ts","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeJPEG2000.ts","webpack://cornerstoneDICOMImageLoader/./shared/decoders/decodeHTJ2K.ts","webpack://cornerstoneDICOMImageLoader/./shared/getMinMax.ts","webpack://cornerstoneDICOMImageLoader/./decodeImageFrameWorker.js","webpack://cornerstoneDICOMImageLoader/./shared/scaling/bilinear.ts","webpack://cornerstoneDICOMImageLoader/./shared/scaling/replicate.ts","webpack://cornerstoneDICOMImageLoader/./shared/isColorImage.ts","webpack://cornerstoneDICOMImageLoader/./shared/scaling/scaleArray.ts","webpack://cornerstoneDICOMImageLoader/./shared/getPixelDataTypeFromMinMax.ts"],"sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine(\"cornerstoneDICOMImageLoader\", [], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"cornerstoneDICOMImageLoader\"] = factory();\n\telse\n\t\troot[\"cornerstoneDICOMImageLoader\"] = factory();\n})(this, () => {\nreturn ","var getProto = Object.getPrototypeOf ? (obj) => (Object.getPrototypeOf(obj)) : (obj) => (obj.__proto__);\nvar leafPrototypes;\n// create a fake namespace object\n// mode & 1: value is a module id, require it\n// mode & 2: merge all properties of value into the ns\n// mode & 4: return value when already ns object\n// mode & 16: return value when it's Promise-like\n// mode & 8|1: behave like require\n__webpack_require__.t = function(value, mode) {\n\tif(mode & 1) value = this(value);\n\tif(mode & 8) return value;\n\tif(typeof value === 'object' && value) {\n\t\tif((mode & 4) && value.__esModule) return value;\n\t\tif((mode & 16) && typeof value.then === 'function') return value;\n\t}\n\tvar ns = Object.create(null);\n\t__webpack_require__.r(ns);\n\tvar def = {};\n\tleafPrototypes = leafPrototypes || [null, getProto({}), getProto([]), getProto(getProto)];\n\tfor(var current = mode & 2 && value; typeof current == 'object' && !~leafPrototypes.indexOf(current); current = getProto(current)) {\n\t\tObject.getOwnPropertyNames(current).forEach((key) => (def[key] = () => (value[key])));\n\t}\n\tdef['default'] = () => (value);\n\t__webpack_require__.d(ns, def);\n\treturn ns;\n};","\nvar CharLSWASM = (() => {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(CharLSWASM) {\n CharLSWASM = CharLSWASM || {};\n\nvar Module=typeof CharLSWASM!=\"undefined\"?CharLSWASM:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};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\",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);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=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[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(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<str.length;++i){var u=str.charCodeAt(i);if(u>=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 lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}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_MEMORY=Module[\"INITIAL_MEMORY\"]||52428800;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}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 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 addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"charlswasm_decode.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(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(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"z\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"C\"];addOnInit(Module[\"asm\"][\"A\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).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)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAP32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}var Emval={toValue:handle=>{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(\"Cannot call \"+name+\" due to unbound types\",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[payload+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value==\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+i]=value[i]}}}if(destructors!==null){destructors.push(_free,base)}return base},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}function emval_get_global(){if(typeof globalThis==\"object\"){return globalThis}return function(){return Function}()(\"return this\")()}function __emval_get_global(name){if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function craftEmvalAllocator(argCount){var argsList=\"\";for(var i=0;i<argCount;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i}var getMemory=()=>HEAPU32;var functionBody=\"return function emval_allocator_\"+argCount+\"(constructor, argTypes, args) {\\n\"+\" var HEAPU32 = getMemory();\\n\";for(var i=0;i<argCount;++i){functionBody+=\"var argType\"+i+\" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter \"+i+\"');\\n\"+\"var arg\"+i+\" = argType\"+i+\".readValueFromPointer(args);\\n\"+\"args += argType\"+i+\"['argPackAdvance'];\\n\"+\"argTypes += 4;\\n\"}functionBody+=\"var obj = new constructor(\"+argsList+\");\\n\"+\"return valueToHandle(obj);\\n\"+\"}\\n\";return new Function(\"requireRegisteredType\",\"Module\",\"valueToHandle\",\"getMemory\",functionBody)(requireRegisteredType,Module,Emval.toHandle,getMemory)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=Emval.toValue(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_take_value(type,arg){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;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(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}function getCFunc(ident){var func=Module[\"_\"+ident];return func}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":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\":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<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var asmLibraryArg={\"h\":___cxa_throw,\"q\":__embind_finalize_value_object,\"r\":__embind_register_bigint,\"w\":__embind_register_bool,\"p\":__embind_register_class,\"o\":__embind_register_class_constructor,\"c\":__embind_register_class_function,\"v\":__embind_register_emval,\"k\":__embind_register_float,\"e\":__embind_register_function,\"b\":__embind_register_integer,\"a\":__embind_register_memory_view,\"j\":__embind_register_std_string,\"g\":__embind_register_std_wstring,\"u\":__embind_register_value_object,\"d\":__embind_register_value_object_field,\"x\":__embind_register_void,\"i\":__emval_decref,\"m\":__emval_get_global,\"l\":__emval_incref,\"y\":__emval_new,\"n\":__emval_take_value,\"f\":_abort,\"t\":_emscripten_memcpy_big,\"s\":_emscripten_resize_heap};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"A\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"B\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"D\"]).apply(null,arguments)};var __embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=function(){return(__embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=Module[\"asm\"][\"E\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"G\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};Module[\"ccall\"]=ccall;var calledRun;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();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return CharLSWASM.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = CharLSWASM;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return CharLSWASM; });\nelse if (typeof exports === 'object')\n exports[\"CharLSWASM\"] = CharLSWASM;\n","\nvar libjpegturbowasm_decode = (() => {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(libjpegturbowasm_decode) {\n libjpegturbowasm_decode = libjpegturbowasm_decode || {};\n\nvar Module=typeof libjpegturbowasm_decode!=\"undefined\"?libjpegturbowasm_decode:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};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\",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);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=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[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(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<str.length;++i){var u=str.charCodeAt(i);if(u>=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 lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}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_MEMORY=Module[\"INITIAL_MEMORY\"]||52428800;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}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 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 addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"libjpegturbowasm_decode.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(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(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"K\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"M\"];addOnInit(Module[\"asm\"][\"L\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).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)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAP32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}var Emval={toValue:handle=>{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[payload+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value==\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+i]=value[i]}}}if(destructors!==null){destructors.push(_free,base)}return base},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emscripten_throw_longjmp(){throw Infinity}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}function emval_get_global(){if(typeof globalThis==\"object\"){return globalThis}return function(){return Function}()(\"return this\")()}function __emval_get_global(name){if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function craftEmvalAllocator(argCount){var argsList=\"\";for(var i=0;i<argCount;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i}var getMemory=()=>HEAPU32;var functionBody=\"return function emval_allocator_\"+argCount+\"(constructor, argTypes, args) {\\n\"+\" var HEAPU32 = getMemory();\\n\";for(var i=0;i<argCount;++i){functionBody+=\"var argType\"+i+\" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter \"+i+\"');\\n\"+\"var arg\"+i+\" = argType\"+i+\".readValueFromPointer(args);\\n\"+\"args += argType\"+i+\"['argPackAdvance'];\\n\"+\"argTypes += 4;\\n\"}functionBody+=\"var obj = new constructor(\"+argsList+\");\\n\"+\"return valueToHandle(obj);\\n\"+\"}\\n\";return new Function(\"requireRegisteredType\",\"Module\",\"valueToHandle\",\"getMemory\",functionBody)(requireRegisteredType,Module,Emval.toHandle,getMemory)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=Emval.toValue(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_take_value(type,arg){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;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(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var SYSCALLS={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}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _proc_exit(code){EXITSTATUS=code;if(!keepRuntimeAlive()){if(Module[\"onExit\"])Module[\"onExit\"](code);ABORT=true}quit_(code,new ExitStatus(code))}function exitJS(status,implicit){EXITSTATUS=status;_proc_exit(status)}var _exit=exitJS;function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j])}num+=len}HEAPU32[pnum>>2]=num;return 0}function getCFunc(ident){var func=Module[\"_\"+ident];return func}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":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\":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<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var asmLibraryArg={\"g\":___cxa_throw,\"A\":__embind_finalize_value_object,\"w\":__embind_register_bigint,\"F\":__embind_register_bool,\"u\":__embind_register_class,\"t\":__embind_register_class_constructor,\"c\":__embind_register_class_function,\"E\":__embind_register_emval,\"m\":__embind_register_float,\"b\":__embind_register_integer,\"a\":__embind_register_memory_view,\"l\":__embind_register_std_string,\"h\":__embind_register_std_wstring,\"J\":__embind_register_value_object,\"d\":__embind_register_value_object_field,\"G\":__embind_register_void,\"x\":__emscripten_throw_longjmp,\"i\":__emval_decref,\"r\":__emval_get_global,\"p\":__emval_incref,\"q\":__emval_new,\"s\":__emval_take_value,\"j\":_abort,\"D\":_emscripten_memcpy_big,\"y\":_emscripten_resize_heap,\"z\":_environ_get,\"B\":_environ_sizes_get,\"I\":_exit,\"C\":_fd_close,\"v\":_fd_seek,\"k\":_fd_write,\"o\":invoke_ii,\"n\":invoke_iii,\"H\":invoke_iiii,\"f\":invoke_vi,\"e\":invoke_viii};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var __embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=function(){return(__embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _setThrew=Module[\"_setThrew\"]=function(){return(_setThrew=Module[\"_setThrew\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"T\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module[\"ccall\"]=ccall;var calledRun;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();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return libjpegturbowasm_decode.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = libjpegturbowasm_decode;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return libjpegturbowasm_decode; });\nelse if (typeof exports === 'object')\n exports[\"libjpegturbowasm_decode\"] = libjpegturbowasm_decode;\n","\nvar OpenJPEGWASM = (() => {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(OpenJPEGWASM) {\n OpenJPEGWASM = OpenJPEGWASM || {};\n\nvar Module=typeof OpenJPEGWASM!=\"undefined\"?OpenJPEGWASM:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};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\",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);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=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[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(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<str.length;++i){var u=str.charCodeAt(i);if(u>=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 lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}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_MEMORY=Module[\"INITIAL_MEMORY\"]||52428800;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}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 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 addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"openjpegwasm_decode.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(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(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"E\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"G\"];addOnInit(Module[\"asm\"][\"F\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).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)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}var exceptionLast=0;var uncaughtExceptionCount=0;function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAP32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}var Emval={toValue:handle=>{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[payload+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value==\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+i]=value[i]}}}if(destructors!==null){destructors.push(_free,base)}return base},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}var emval_symbols={};function getStringOrSymbol(address){var symbol=emval_symbols[address];if(symbol===undefined){return readLatin1String(address)}return symbol}function emval_get_global(){if(typeof globalThis==\"object\"){return globalThis}return function(){return Function}()(\"return this\")()}function __emval_get_global(name){if(name===0){return Emval.toHandle(emval_get_global())}else{name=getStringOrSymbol(name);return Emval.toHandle(emval_get_global()[name])}}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function craftEmvalAllocator(argCount){var argsList=\"\";for(var i=0;i<argCount;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i}var getMemory=()=>HEAPU32;var functionBody=\"return function emval_allocator_\"+argCount+\"(constructor, argTypes, args) {\\n\"+\" var HEAPU32 = getMemory();\\n\";for(var i=0;i<argCount;++i){functionBody+=\"var argType\"+i+\" = requireRegisteredType(HEAPU32[((argTypes)>>2)], 'parameter \"+i+\"');\\n\"+\"var arg\"+i+\" = argType\"+i+\".readValueFromPointer(args);\\n\"+\"args += argType\"+i+\"['argPackAdvance'];\\n\"+\"argTypes += 4;\\n\"}functionBody+=\"var obj = new constructor(\"+argsList+\");\\n\"+\"return valueToHandle(obj);\\n\"+\"}\\n\";return new Function(\"requireRegisteredType\",\"Module\",\"valueToHandle\",\"getMemory\",functionBody)(requireRegisteredType,Module,Emval.toHandle,getMemory)}var emval_newers={};function __emval_new(handle,argCount,argTypes,args){handle=Emval.toValue(handle);var newer=emval_newers[argCount];if(!newer){newer=craftEmvalAllocator(argCount);emval_newers[argCount]=newer}return newer(handle,argTypes,args)}function __emval_take_value(type,arg){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)}function _abort(){abort(\"\")}function getHeapMax(){return 2147483648}function _emscripten_get_heap_max(){return getHeapMax()}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;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(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var ENV={};function getExecutableName(){return thisProgram||\"./this.program\"}function getEnvStrings(){if(!getEnvStrings.strings){var lang=(typeof navigator==\"object\"&&navigator.languages&&navigator.languages[0]||\"C\").replace(\"-\",\"_\")+\".UTF-8\";var env={\"USER\":\"web_user\",\"LOGNAME\":\"web_user\",\"PATH\":\"/\",\"PWD\":\"/\",\"HOME\":\"/home/web_user\",\"LANG\":lang,\"_\":getExecutableName()};for(var x in ENV){if(ENV[x]===undefined)delete env[x];else env[x]=ENV[x]}var strings=[];for(var x in env){strings.push(x+\"=\"+env[x])}getEnvStrings.strings=strings}return getEnvStrings.strings}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}var SYSCALLS={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}};function _environ_get(__environ,environ_buf){var bufSize=0;getEnvStrings().forEach(function(string,i){var ptr=environ_buf+bufSize;HEAPU32[__environ+i*4>>2]=ptr;writeAsciiToMemory(string,ptr);bufSize+=string.length+1});return 0}function _environ_sizes_get(penviron_count,penviron_buf_size){var strings=getEnvStrings();HEAPU32[penviron_count>>2]=strings.length;var bufSize=0;strings.forEach(function(string){bufSize+=string.length+1});HEAPU32[penviron_buf_size>>2]=bufSize;return 0}function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j])}num+=len}HEAPU32[pnum>>2]=num;return 0}function getCFunc(ident){var func=Module[\"_\"+ident];return func}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":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\":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<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var asmLibraryArg={\"D\":___cxa_throw,\"e\":__embind_finalize_value_object,\"t\":__embind_register_bigint,\"B\":__embind_register_bool,\"r\":__embind_register_class,\"q\":__embind_register_class_constructor,\"b\":__embind_register_class_function,\"A\":__embind_register_emval,\"l\":__embind_register_float,\"d\":__embind_register_integer,\"a\":__embind_register_memory_view,\"k\":__embind_register_std_string,\"f\":__embind_register_std_wstring,\"g\":__embind_register_value_object,\"c\":__embind_register_value_object_field,\"C\":__embind_register_void,\"h\":__emval_decref,\"o\":__emval_get_global,\"m\":__emval_incref,\"n\":__emval_new,\"p\":__emval_take_value,\"i\":_abort,\"v\":_emscripten_get_heap_max,\"z\":_emscripten_memcpy_big,\"u\":_emscripten_resize_heap,\"w\":_environ_get,\"x\":_environ_sizes_get,\"y\":_fd_close,\"s\":_fd_seek,\"j\":_fd_write};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"F\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"H\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"I\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"J\"]).apply(null,arguments)};var __embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=function(){return(__embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=Module[\"asm\"][\"K\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"L\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"M\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"N\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"O\"]).apply(null,arguments)};var dynCall_iji=Module[\"dynCall_iji\"]=function(){return(dynCall_iji=Module[\"dynCall_iji\"]=Module[\"asm\"][\"P\"]).apply(null,arguments)};var dynCall_jji=Module[\"dynCall_jji\"]=function(){return(dynCall_jji=Module[\"dynCall_jji\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var dynCall_iiji=Module[\"dynCall_iiji\"]=function(){return(dynCall_iiji=Module[\"dynCall_iiji\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};Module[\"ccall\"]=ccall;var calledRun;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();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return OpenJPEGWASM.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = OpenJPEGWASM;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return OpenJPEGWASM; });\nelse if (typeof exports === 'object')\n exports[\"OpenJPEGWASM\"] = OpenJPEGWASM;\n","\nvar Module = (() => {\n var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;\n if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;\n return (\nfunction(Module) {\n Module = Module || {};\n\nvar Module=typeof Module!=\"undefined\"?Module:{};var readyPromiseResolve,readyPromiseReject;Module[\"ready\"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram=\"./this.program\";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window==\"object\";var ENVIRONMENT_IS_WORKER=typeof importScripts==\"function\";var ENVIRONMENT_IS_NODE=typeof process==\"object\"&&typeof process.versions==\"object\"&&typeof process.versions.node==\"string\";var scriptDirectory=\"\";function locateFile(path){if(Module[\"locateFile\"]){return Module[\"locateFile\"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;err(\"exiting due to exception: \"+toLog)}if(ENVIRONMENT_IS_NODE){var fs=require(\"fs\");var nodePath=require(\"path\");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+\"/\"}else{scriptDirectory=__dirname+\"/\"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:\"utf8\")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};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\",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process[\"exitCode\"]=status;throw toThrow}logExceptionOnExit(toThrow);process[\"exit\"](status)};Module[\"inspect\"]=function(){return\"[Emscripten Module object]\"}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!=\"undefined\"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf(\"blob:\")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,\"\").lastIndexOf(\"/\")+1)}else{scriptDirectory=\"\"}{read_=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.send(null);return xhr.responseText};if(ENVIRONMENT_IS_WORKER){readBinary=url=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,false);xhr.responseType=\"arraybuffer\";xhr.send(null);return new Uint8Array(xhr.response)}}readAsync=(url,onload,onerror)=>{var xhr=new XMLHttpRequest;xhr.open(\"GET\",url,true);xhr.responseType=\"arraybuffer\";xhr.onload=()=>{if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}onerror()};xhr.onerror=onerror;xhr.send(null)}}setWindowTitle=title=>document.title=title}else{}var out=Module[\"print\"]||console.log.bind(console);var err=Module[\"printErr\"]||console.warn.bind(console);Object.assign(Module,moduleOverrides);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=Module[\"noExitRuntime\"]||true;if(typeof WebAssembly!=\"object\"){abort(\"no native wasm support detected\")}var wasmMemory;var ABORT=false;var EXITSTATUS;function assert(condition,text){if(!condition){abort(text)}}var UTF8Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf8\"):undefined;function UTF8ArrayToString(heapOrArray,idx,maxBytesToRead){var endIdx=idx+maxBytesToRead;var endPtr=idx;while(heapOrArray[endPtr]&&!(endPtr>=endIdx))++endPtr;if(endPtr-idx>16&&heapOrArray.buffer&&UTF8Decoder){return UTF8Decoder.decode(heapOrArray.subarray(idx,endPtr))}var str=\"\";while(idx<endPtr){var u0=heapOrArray[idx++];if(!(u0&128)){str+=String.fromCharCode(u0);continue}var u1=heapOrArray[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}var u2=heapOrArray[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u0=(u0&7)<<18|u1<<12|u2<<6|heapOrArray[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(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<str.length;++i){var u=str.charCodeAt(i);if(u>=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 lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var c=str.charCodeAt(i);if(c<=127){len++}else if(c<=2047){len+=2}else if(c>=55296&&c<=57343){len+=4;++i}else{len+=3}}return len}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_MEMORY=Module[\"INITIAL_MEMORY\"]||52428800;var wasmTable;var __ATPRERUN__=[];var __ATINIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;function keepRuntimeAlive(){return noExitRuntime}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 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 addOnInit(cb){__ATINIT__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}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()}}}function abort(what){if(Module[\"onAbort\"]){Module[\"onAbort\"](what)}what=\"Aborted(\"+what+\")\";err(what);ABORT=true;EXITSTATUS=1;what+=\". Build with -sASSERTIONS for more info.\";var e=new WebAssembly.RuntimeError(what);readyPromiseReject(e);throw e}var dataURIPrefix=\"data:application/octet-stream;base64,\";function isDataURI(filename){return filename.startsWith(dataURIPrefix)}function isFileURI(filename){return filename.startsWith(\"file://\")}var wasmBinaryFile;wasmBinaryFile=\"openjphjs.wasm\";if(!isDataURI(wasmBinaryFile)){wasmBinaryFile=locateFile(wasmBinaryFile)}function getBinary(file){try{if(file==wasmBinaryFile&&wasmBinary){return new Uint8Array(wasmBinary)}if(readBinary){return readBinary(file)}throw\"both async and sync fetching of the wasm failed\"}catch(err){abort(err)}}function getBinaryPromise(){if(!wasmBinary&&(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER)){if(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(wasmBinaryFile)})}else{if(readAsync){return new Promise(function(resolve,reject){readAsync(wasmBinaryFile,function(response){resolve(new Uint8Array(response))},reject)})}}}return Promise.resolve().then(function(){return getBinary(wasmBinaryFile)})}function createWasm(){var info={\"a\":asmLibraryArg};function receiveInstance(instance,module){var exports=instance.exports;Module[\"asm\"]=exports;wasmMemory=Module[\"asm\"][\"P\"];updateGlobalBufferAndViews(wasmMemory.buffer);wasmTable=Module[\"asm\"][\"T\"];addOnInit(Module[\"asm\"][\"Q\"]);removeRunDependency(\"wasm-instantiate\")}addRunDependency(\"wasm-instantiate\");function receiveInstantiationResult(result){receiveInstance(result[\"instance\"])}function instantiateArrayBuffer(receiver){return getBinaryPromise().then(function(binary){return WebAssembly.instantiate(binary,info)}).then(function(instance){return instance}).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)&&!ENVIRONMENT_IS_NODE&&typeof fetch==\"function\"){return fetch(wasmBinaryFile,{credentials:\"same-origin\"}).then(function(response){var result=WebAssembly.instantiateStreaming(response,info);return result.then(receiveInstantiationResult,function(reason){err(\"wasm streaming compile failed: \"+reason);err(\"falling back to ArrayBuffer instantiation\");return instantiateArrayBuffer(receiveInstantiationResult)})})}else{return instantiateArrayBuffer(receiveInstantiationResult)}}if(Module[\"instantiateWasm\"]){try{var exports=Module[\"instantiateWasm\"](info,receiveInstance);return exports}catch(e){err(\"Module.instantiateWasm callback failed with error: \"+e);readyPromiseReject(e)}}instantiateAsync().catch(readyPromiseReject);return{}}function ExitStatus(status){this.name=\"ExitStatus\";this.message=\"Program terminated with exit(\"+status+\")\";this.status=status}function callRuntimeCallbacks(callbacks){while(callbacks.length>0){callbacks.shift()(Module)}}var exceptionCaught=[];function exception_addRef(info){info.add_ref()}var uncaughtExceptionCount=0;function ___cxa_begin_catch(ptr){var info=new ExceptionInfo(ptr);if(!info.get_caught()){info.set_caught(true);uncaughtExceptionCount--}info.set_rethrown(false);exceptionCaught.push(info);exception_addRef(info);return info.get_exception_ptr()}var exceptionLast=0;var wasmTableMirror=[];function getWasmTableEntry(funcPtr){var func=wasmTableMirror[funcPtr];if(!func){if(funcPtr>=wasmTableMirror.length)wasmTableMirror.length=funcPtr+1;wasmTableMirror[funcPtr]=func=wasmTable.get(funcPtr)}return func}function exception_decRef(info){if(info.release_ref()&&!info.get_rethrown()){var destructor=info.get_destructor();if(destructor){getWasmTableEntry(destructor)(info.excPtr)}___cxa_free_exception(info.excPtr)}}function ___cxa_end_catch(){_setThrew(0);var info=exceptionCaught.pop();exception_decRef(info);exceptionLast=0}function ExceptionInfo(excPtr){this.excPtr=excPtr;this.ptr=excPtr-24;this.set_type=function(type){HEAPU32[this.ptr+4>>2]=type};this.get_type=function(){return HEAPU32[this.ptr+4>>2]};this.set_destructor=function(destructor){HEAPU32[this.ptr+8>>2]=destructor};this.get_destructor=function(){return HEAPU32[this.ptr+8>>2]};this.set_refcount=function(refcount){HEAP32[this.ptr>>2]=refcount};this.set_caught=function(caught){caught=caught?1:0;HEAP8[this.ptr+12>>0]=caught};this.get_caught=function(){return HEAP8[this.ptr+12>>0]!=0};this.set_rethrown=function(rethrown){rethrown=rethrown?1:0;HEAP8[this.ptr+13>>0]=rethrown};this.get_rethrown=function(){return HEAP8[this.ptr+13>>0]!=0};this.init=function(type,destructor){this.set_adjusted_ptr(0);this.set_type(type);this.set_destructor(destructor);this.set_refcount(0);this.set_caught(false);this.set_rethrown(false)};this.add_ref=function(){var value=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=value+1};this.release_ref=function(){var prev=HEAP32[this.ptr>>2];HEAP32[this.ptr>>2]=prev-1;return prev===1};this.set_adjusted_ptr=function(adjustedPtr){HEAPU32[this.ptr+16>>2]=adjustedPtr};this.get_adjusted_ptr=function(){return HEAPU32[this.ptr+16>>2]};this.get_exception_ptr=function(){var isPointer=___cxa_is_pointer_type(this.get_type());if(isPointer){return HEAPU32[this.excPtr>>2]}var adjusted=this.get_adjusted_ptr();if(adjusted!==0)return adjusted;return this.excPtr}}function ___resumeException(ptr){if(!exceptionLast){exceptionLast=ptr}throw ptr}function ___cxa_find_matching_catch_2(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var i=0;i<arguments.length;i++){var caughtType=arguments[i];if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown}function ___cxa_find_matching_catch_3(){var thrown=exceptionLast;if(!thrown){setTempRet0(0);return 0}var info=new ExceptionInfo(thrown);info.set_adjusted_ptr(thrown);var thrownType=info.get_type();if(!thrownType){setTempRet0(0);return thrown}for(var i=0;i<arguments.length;i++){var caughtType=arguments[i];if(caughtType===0||caughtType===thrownType){break}var adjusted_ptr_addr=info.ptr+16;if(___cxa_can_catch(caughtType,thrownType,adjusted_ptr_addr)){setTempRet0(caughtType);return thrown}}setTempRet0(thrownType);return thrown}function ___cxa_throw(ptr,type,destructor){var info=new ExceptionInfo(ptr);info.init(type,destructor);exceptionLast=ptr;uncaughtExceptionCount++;throw ptr}var structRegistrations={};function runDestructors(destructors){while(destructors.length){var ptr=destructors.pop();var del=destructors.pop();del(ptr)}}function simpleReadValueFromPointer(pointer){return this[\"fromWireType\"](HEAP32[pointer>>2])}var awaitingDependencies={};var registeredTypes={};var typeDependencies={};var char_0=48;var char_9=57;function makeLegalFunctionName(name){if(undefined===name){return\"_unknown\"}name=name.replace(/[^a-zA-Z0-9_]/g,\"$\");var f=name.charCodeAt(0);if(f>=char_0&&f<=char_9){return\"_\"+name}return name}function createNamedFunction(name,body){name=makeLegalFunctionName(name);return new Function(\"body\",\"return function \"+name+\"() {\\n\"+' \"use strict\";'+\" return body.apply(this, arguments);\\n\"+\"};\\n\")(body)}function extendError(baseErrorType,errorName){var errorClass=createNamedFunction(errorName,function(message){this.name=errorName;this.message=message;var stack=new Error(message).stack;if(stack!==undefined){this.stack=this.toString()+\"\\n\"+stack.replace(/^Error(:[^\\n]*)?\\n/,\"\")}});errorClass.prototype=Object.create(baseErrorType.prototype);errorClass.prototype.constructor=errorClass;errorClass.prototype.toString=function(){if(this.message===undefined){return this.name}else{return this.name+\": \"+this.message}};return errorClass}var InternalError=undefined;function throwInternalError(message){throw new InternalError(message)}function whenDependentTypesAreResolved(myTypes,dependentTypes,getTypeConverters){myTypes.forEach(function(type){typeDependencies[type]=dependentTypes});function onComplete(typeConverters){var myTypeConverters=getTypeConverters(typeConverters);if(myTypeConverters.length!==myTypes.length){throwInternalError(\"Mismatched type converter count\")}for(var i=0;i<myTypes.length;++i){registerType(myTypes[i],myTypeConverters[i])}}var typeConverters=new Array(dependentTypes.length);var unregisteredTypes=[];var registered=0;dependentTypes.forEach((dt,i)=>{if(registeredTypes.hasOwnProperty(dt)){typeConverters[i]=registeredTypes[dt]}else{unregisteredTypes.push(dt);if(!awaitingDependencies.hasOwnProperty(dt)){awaitingDependencies[dt]=[]}awaitingDependencies[dt].push(()=>{typeConverters[i]=registeredTypes[dt];++registered;if(registered===unregisteredTypes.length){onComplete(typeConverters)}})}});if(0===unregisteredTypes.length){onComplete(typeConverters)}}function __embind_finalize_value_object(structType){var reg=structRegistrations[structType];delete structRegistrations[structType];var rawConstructor=reg.rawConstructor;var rawDestructor=reg.rawDestructor;var fieldRecords=reg.fields;var fieldTypes=fieldRecords.map(field=>field.getterReturnType).concat(fieldRecords.map(field=>field.setterArgumentType));whenDependentTypesAreResolved([structType],fieldTypes,fieldTypes=>{var fields={};fieldRecords.forEach((field,i)=>{var fieldName=field.fieldName;var getterReturnType=fieldTypes[i];var getter=field.getter;var getterContext=field.getterContext;var setterArgumentType=fieldTypes[i+fieldRecords.length];var setter=field.setter;var setterContext=field.setterContext;fields[fieldName]={read:ptr=>{return getterReturnType[\"fromWireType\"](getter(getterContext,ptr))},write:(ptr,o)=>{var destructors=[];setter(setterContext,ptr,setterArgumentType[\"toWireType\"](destructors,o));runDestructors(destructors)}}});return[{name:reg.name,\"fromWireType\":function(ptr){var rv={};for(var i in fields){rv[i]=fields[i].read(ptr)}rawDestructor(ptr);return rv},\"toWireType\":function(destructors,o){for(var fieldName in fields){if(!(fieldName in o)){throw new TypeError('Missing field: \"'+fieldName+'\"')}}var ptr=rawConstructor();for(fieldName in fields){fields[fieldName].write(ptr,o[fieldName])}if(destructors!==null){destructors.push(rawDestructor,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:rawDestructor}]})}function __embind_register_bigint(primitiveType,name,size,minRange,maxRange){}function getShiftFromSize(size){switch(size){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError(\"Unknown type size: \"+size)}}function embind_init_charCodes(){var codes=new Array(256);for(var i=0;i<256;++i){codes[i]=String.fromCharCode(i)}embind_charCodes=codes}var embind_charCodes=undefined;function readLatin1String(ptr){var ret=\"\";var c=ptr;while(HEAPU8[c]){ret+=embind_charCodes[HEAPU8[c++]]}return ret}var BindingError=undefined;function throwBindingError(message){throw new BindingError(message)}function registerType(rawType,registeredInstance,options={}){if(!(\"argPackAdvance\"in registeredInstance)){throw new TypeError(\"registerType registeredInstance requires argPackAdvance\")}var name=registeredInstance.name;if(!rawType){throwBindingError('type \"'+name+'\" must have a positive integer typeid pointer')}if(registeredTypes.hasOwnProperty(rawType)){if(options.ignoreDuplicateRegistrations){return}else{throwBindingError(\"Cannot register type '\"+name+\"' twice\")}}registeredTypes[rawType]=registeredInstance;delete typeDependencies[rawType];if(awaitingDependencies.hasOwnProperty(rawType)){var callbacks=awaitingDependencies[rawType];delete awaitingDependencies[rawType];callbacks.forEach(cb=>cb())}}function __embind_register_bool(rawType,name,size,trueValue,falseValue){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(wt){return!!wt},\"toWireType\":function(destructors,o){return o?trueValue:falseValue},\"argPackAdvance\":8,\"readValueFromPointer\":function(pointer){var heap;if(size===1){heap=HEAP8}else if(size===2){heap=HEAP16}else if(size===4){heap=HEAP32}else{throw new TypeError(\"Unknown boolean type size: \"+name)}return this[\"fromWireType\"](heap[pointer>>shift])},destructorFunction:null})}function ClassHandle_isAliasOf(other){if(!(this instanceof ClassHandle)){return false}if(!(other instanceof ClassHandle)){return false}var leftClass=this.$$.ptrType.registeredClass;var left=this.$$.ptr;var rightClass=other.$$.ptrType.registeredClass;var right=other.$$.ptr;while(leftClass.baseClass){left=leftClass.upcast(left);leftClass=leftClass.baseClass}while(rightClass.baseClass){right=rightClass.upcast(right);rightClass=rightClass.baseClass}return leftClass===rightClass&&left===right}function shallowCopyInternalPointer(o){return{count:o.count,deleteScheduled:o.deleteScheduled,preservePointerOnDelete:o.preservePointerOnDelete,ptr:o.ptr,ptrType:o.ptrType,smartPtr:o.smartPtr,smartPtrType:o.smartPtrType}}function throwInstanceAlreadyDeleted(obj){function getInstanceTypeName(handle){return handle.$$.ptrType.registeredClass.name}throwBindingError(getInstanceTypeName(obj)+\" instance already deleted\")}var finalizationRegistry=false;function detachFinalizer(handle){}function runDestructor($$){if($$.smartPtr){$$.smartPtrType.rawDestructor($$.smartPtr)}else{$$.ptrType.registeredClass.rawDestructor($$.ptr)}}function releaseClassHandle($$){$$.count.value-=1;var toDelete=0===$$.count.value;if(toDelete){runDestructor($$)}}function downcastPointer(ptr,ptrClass,desiredClass){if(ptrClass===desiredClass){return ptr}if(undefined===desiredClass.baseClass){return null}var rv=downcastPointer(ptr,ptrClass,desiredClass.baseClass);if(rv===null){return null}return desiredClass.downcast(rv)}var registeredPointers={};function getInheritedInstanceCount(){return Object.keys(registeredInstances).length}function getLiveInheritedInstances(){var rv=[];for(var k in registeredInstances){if(registeredInstances.hasOwnProperty(k)){rv.push(registeredInstances[k])}}return rv}var deletionQueue=[];function flushPendingDeletes(){while(deletionQueue.length){var obj=deletionQueue.pop();obj.$$.deleteScheduled=false;obj[\"delete\"]()}}var delayFunction=undefined;function setDelayFunction(fn){delayFunction=fn;if(deletionQueue.length&&delayFunction){delayFunction(flushPendingDeletes)}}function init_embind(){Module[\"getInheritedInstanceCount\"]=getInheritedInstanceCount;Module[\"getLiveInheritedInstances\"]=getLiveInheritedInstances;Module[\"flushPendingDeletes\"]=flushPendingDeletes;Module[\"setDelayFunction\"]=setDelayFunction}var registeredInstances={};function getBasestPointer(class_,ptr){if(ptr===undefined){throwBindingError(\"ptr should not be undefined\")}while(class_.baseClass){ptr=class_.upcast(ptr);class_=class_.baseClass}return ptr}function getInheritedInstance(class_,ptr){ptr=getBasestPointer(class_,ptr);return registeredInstances[ptr]}function makeClassHandle(prototype,record){if(!record.ptrType||!record.ptr){throwInternalError(\"makeClassHandle requires ptr and ptrType\")}var hasSmartPtrType=!!record.smartPtrType;var hasSmartPtr=!!record.smartPtr;if(hasSmartPtrType!==hasSmartPtr){throwInternalError(\"Both smartPtrType and smartPtr must be specified\")}record.count={value:1};return attachFinalizer(Object.create(prototype,{$$:{value:record}}))}function RegisteredPointer_fromWireType(ptr){var rawPointer=this.getPointee(ptr);if(!rawPointer){this.destructor(ptr);return null}var registeredInstance=getInheritedInstance(this.registeredClass,rawPointer);if(undefined!==registeredInstance){if(0===registeredInstance.$$.count.value){registeredInstance.$$.ptr=rawPointer;registeredInstance.$$.smartPtr=ptr;return registeredInstance[\"clone\"]()}else{var rv=registeredInstance[\"clone\"]();this.destructor(ptr);return rv}}function makeDefaultHandle(){if(this.isSmartPointer){return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:rawPointer,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(this.registeredClass.instancePrototype,{ptrType:this,ptr:ptr})}}var actualType=this.registeredClass.getActualType(rawPointer);var registeredPointerRecord=registeredPointers[actualType];if(!registeredPointerRecord){return makeDefaultHandle.call(this)}var toType;if(this.isConst){toType=registeredPointerRecord.constPointerType}else{toType=registeredPointerRecord.pointerType}var dp=downcastPointer(rawPointer,this.registeredClass,toType.registeredClass);if(dp===null){return makeDefaultHandle.call(this)}if(this.isSmartPointer){return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp,smartPtrType:this,smartPtr:ptr})}else{return makeClassHandle(toType.registeredClass.instancePrototype,{ptrType:toType,ptr:dp})}}function attachFinalizer(handle){if(\"undefined\"===typeof FinalizationRegistry){attachFinalizer=handle=>handle;return handle}finalizationRegistry=new FinalizationRegistry(info=>{releaseClassHandle(info.$$)});attachFinalizer=handle=>{var $$=handle.$$;var hasSmartPtr=!!$$.smartPtr;if(hasSmartPtr){var info={$$:$$};finalizationRegistry.register(handle,info,handle)}return handle};detachFinalizer=handle=>finalizationRegistry.unregister(handle);return attachFinalizer(handle)}function ClassHandle_clone(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.preservePointerOnDelete){this.$$.count.value+=1;return this}else{var clone=attachFinalizer(Object.create(Object.getPrototypeOf(this),{$$:{value:shallowCopyInternalPointer(this.$$)}}));clone.$$.count.value+=1;clone.$$.deleteScheduled=false;return clone}}function ClassHandle_delete(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}detachFinalizer(this);releaseClassHandle(this.$$);if(!this.$$.preservePointerOnDelete){this.$$.smartPtr=undefined;this.$$.ptr=undefined}}function ClassHandle_isDeleted(){return!this.$$.ptr}function ClassHandle_deleteLater(){if(!this.$$.ptr){throwInstanceAlreadyDeleted(this)}if(this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete){throwBindingError(\"Object already scheduled for deletion\")}deletionQueue.push(this);if(deletionQueue.length===1&&delayFunction){delayFunction(flushPendingDeletes)}this.$$.deleteScheduled=true;return this}function init_ClassHandle(){ClassHandle.prototype[\"isAliasOf\"]=ClassHandle_isAliasOf;ClassHandle.prototype[\"clone\"]=ClassHandle_clone;ClassHandle.prototype[\"delete\"]=ClassHandle_delete;ClassHandle.prototype[\"isDeleted\"]=ClassHandle_isDeleted;ClassHandle.prototype[\"deleteLater\"]=ClassHandle_deleteLater}function ClassHandle(){}function ensureOverloadTable(proto,methodName,humanName){if(undefined===proto[methodName].overloadTable){var prevFunc=proto[methodName];proto[methodName]=function(){if(!proto[methodName].overloadTable.hasOwnProperty(arguments.length)){throwBindingError(\"Function '\"+humanName+\"' called with an invalid number of arguments (\"+arguments.length+\") - expects one of (\"+proto[methodName].overloadTable+\")!\")}return proto[methodName].overloadTable[arguments.length].apply(this,arguments)};proto[methodName].overloadTable=[];proto[methodName].overloadTable[prevFunc.argCount]=prevFunc}}function exposePublicSymbol(name,value,numArguments){if(Module.hasOwnProperty(name)){if(undefined===numArguments||undefined!==Module[name].overloadTable&&undefined!==Module[name].overloadTable[numArguments]){throwBindingError(\"Cannot register public name '\"+name+\"' twice\")}ensureOverloadTable(Module,name,name);if(Module.hasOwnProperty(numArguments)){throwBindingError(\"Cannot register multiple overloads of a function with the same number of arguments (\"+numArguments+\")!\")}Module[name].overloadTable[numArguments]=value}else{Module[name]=value;if(undefined!==numArguments){Module[name].numArguments=numArguments}}}function RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast){this.name=name;this.constructor=constructor;this.instancePrototype=instancePrototype;this.rawDestructor=rawDestructor;this.baseClass=baseClass;this.getActualType=getActualType;this.upcast=upcast;this.downcast=downcast;this.pureVirtualFunctions=[]}function upcastPointer(ptr,ptrClass,desiredClass){while(ptrClass!==desiredClass){if(!ptrClass.upcast){throwBindingError(\"Expected null or instance of \"+desiredClass.name+\", got an instance of \"+ptrClass.name)}ptr=ptrClass.upcast(ptr);ptrClass=ptrClass.baseClass}return ptr}function constNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function genericPointerToWireType(destructors,handle){var ptr;if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}if(this.isSmartPointer){ptr=this.rawConstructor();if(destructors!==null){destructors.push(this.rawDestructor,ptr)}return ptr}else{return 0}}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(!this.isConst&&handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);if(this.isSmartPointer){if(undefined===handle.$$.smartPtr){throwBindingError(\"Passing raw pointer to smart pointer is illegal\")}switch(this.sharingPolicy){case 0:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{throwBindingError(\"Cannot convert argument of type \"+(handle.$$.smartPtrType?handle.$$.smartPtrType.name:handle.$$.ptrType.name)+\" to parameter type \"+this.name)}break;case 1:ptr=handle.$$.smartPtr;break;case 2:if(handle.$$.smartPtrType===this){ptr=handle.$$.smartPtr}else{var clonedHandle=handle[\"clone\"]();ptr=this.rawShare(ptr,Emval.toHandle(function(){clonedHandle[\"delete\"]()}));if(destructors!==null){destructors.push(this.rawDestructor,ptr)}}break;default:throwBindingError(\"Unsupporting sharing policy\")}}return ptr}function nonConstNoSmartPtrRawPointerToWireType(destructors,handle){if(handle===null){if(this.isReference){throwBindingError(\"null is not a valid \"+this.name)}return 0}if(!handle.$$){throwBindingError('Cannot pass \"'+embindRepr(handle)+'\" as a '+this.name)}if(!handle.$$.ptr){throwBindingError(\"Cannot pass deleted object as a pointer of type \"+this.name)}if(handle.$$.ptrType.isConst){throwBindingError(\"Cannot convert argument of type \"+handle.$$.ptrType.name+\" to parameter type \"+this.name)}var handleClass=handle.$$.ptrType.registeredClass;var ptr=upcastPointer(handle.$$.ptr,handleClass,this.registeredClass);return ptr}function RegisteredPointer_getPointee(ptr){if(this.rawGetPointee){ptr=this.rawGetPointee(ptr)}return ptr}function RegisteredPointer_destructor(ptr){if(this.rawDestructor){this.rawDestructor(ptr)}}function RegisteredPointer_deleteObject(handle){if(handle!==null){handle[\"delete\"]()}}function init_RegisteredPointer(){RegisteredPointer.prototype.getPointee=RegisteredPointer_getPointee;RegisteredPointer.prototype.destructor=RegisteredPointer_destructor;RegisteredPointer.prototype[\"argPackAdvance\"]=8;RegisteredPointer.prototype[\"readValueFromPointer\"]=simpleReadValueFromPointer;RegisteredPointer.prototype[\"deleteObject\"]=RegisteredPointer_deleteObject;RegisteredPointer.prototype[\"fromWireType\"]=RegisteredPointer_fromWireType}function RegisteredPointer(name,registeredClass,isReference,isConst,isSmartPointer,pointeeType,sharingPolicy,rawGetPointee,rawConstructor,rawShare,rawDestructor){this.name=name;this.registeredClass=registeredClass;this.isReference=isReference;this.isConst=isConst;this.isSmartPointer=isSmartPointer;this.pointeeType=pointeeType;this.sharingPolicy=sharingPolicy;this.rawGetPointee=rawGetPointee;this.rawConstructor=rawConstructor;this.rawShare=rawShare;this.rawDestructor=rawDestructor;if(!isSmartPointer&®isteredClass.baseClass===undefined){if(isConst){this[\"toWireType\"]=constNoSmartPtrRawPointerToWireType;this.destructorFunction=null}else{this[\"toWireType\"]=nonConstNoSmartPtrRawPointerToWireType;this.destructorFunction=null}}else{this[\"toWireType\"]=genericPointerToWireType}}function replacePublicSymbol(name,value,numArguments){if(!Module.hasOwnProperty(name)){throwInternalError(\"Replacing nonexistant public symbol\")}if(undefined!==Module[name].overloadTable&&undefined!==numArguments){Module[name].overloadTable[numArguments]=value}else{Module[name]=value;Module[name].argCount=numArguments}}function dynCallLegacy(sig,ptr,args){var f=Module[\"dynCall_\"+sig];return args&&args.length?f.apply(null,[ptr].concat(args)):f.call(null,ptr)}function dynCall(sig,ptr,args){if(sig.includes(\"j\")){return dynCallLegacy(sig,ptr,args)}var rtn=getWasmTableEntry(ptr).apply(null,args);return rtn}function getDynCaller(sig,ptr){var argCache=[];return function(){argCache.length=0;Object.assign(argCache,arguments);return dynCall(sig,ptr,argCache)}}function embind__requireFunction(signature,rawFunction){signature=readLatin1String(signature);function makeDynCaller(){if(signature.includes(\"j\")){return getDynCaller(signature,rawFunction)}return getWasmTableEntry(rawFunction)}var fp=makeDynCaller();if(typeof fp!=\"function\"){throwBindingError(\"unknown function pointer with signature \"+signature+\": \"+rawFunction)}return fp}var UnboundTypeError=undefined;function getTypeName(type){var ptr=___getTypeName(type);var rv=readLatin1String(ptr);_free(ptr);return rv}function throwUnboundTypeError(message,types){var unboundTypes=[];var seen={};function visit(type){if(seen[type]){return}if(registeredTypes[type]){return}if(typeDependencies[type]){typeDependencies[type].forEach(visit);return}unboundTypes.push(type);seen[type]=true}types.forEach(visit);throw new UnboundTypeError(message+\": \"+unboundTypes.map(getTypeName).join([\", \"]))}function __embind_register_class(rawType,rawPointerType,rawConstPointerType,baseClassRawType,getActualTypeSignature,getActualType,upcastSignature,upcast,downcastSignature,downcast,name,destructorSignature,rawDestructor){name=readLatin1String(name);getActualType=embind__requireFunction(getActualTypeSignature,getActualType);if(upcast){upcast=embind__requireFunction(upcastSignature,upcast)}if(downcast){downcast=embind__requireFunction(downcastSignature,downcast)}rawDestructor=embind__requireFunction(destructorSignature,rawDestructor);var legalFunctionName=makeLegalFunctionName(name);exposePublicSymbol(legalFunctionName,function(){throwUnboundTypeError(\"Cannot construct \"+name+\" due to unbound types\",[baseClassRawType])});whenDependentTypesAreResolved([rawType,rawPointerType,rawConstPointerType],baseClassRawType?[baseClassRawType]:[],function(base){base=base[0];var baseClass;var basePrototype;if(baseClassRawType){baseClass=base.registeredClass;basePrototype=baseClass.instancePrototype}else{basePrototype=ClassHandle.prototype}var constructor=createNamedFunction(legalFunctionName,function(){if(Object.getPrototypeOf(this)!==instancePrototype){throw new BindingError(\"Use 'new' to construct \"+name)}if(undefined===registeredClass.constructor_body){throw new BindingError(name+\" has no accessible constructor\")}var body=registeredClass.constructor_body[arguments.length];if(undefined===body){throw new BindingError(\"Tried to invoke ctor of \"+name+\" with invalid number of parameters (\"+arguments.length+\") - expected (\"+Object.keys(registeredClass.constructor_body).toString()+\") parameters instead!\")}return body.apply(this,arguments)});var instancePrototype=Object.create(basePrototype,{constructor:{value:constructor}});constructor.prototype=instancePrototype;var registeredClass=new RegisteredClass(name,constructor,instancePrototype,rawDestructor,baseClass,getActualType,upcast,downcast);var referenceConverter=new RegisteredPointer(name,registeredClass,true,false,false);var pointerConverter=new RegisteredPointer(name+\"*\",registeredClass,false,false,false);var constPointerConverter=new RegisteredPointer(name+\" const*\",registeredClass,false,true,false);registeredPointers[rawType]={pointerType:pointerConverter,constPointerType:constPointerConverter};replacePublicSymbol(legalFunctionName,constructor);return[referenceConverter,pointerConverter,constPointerConverter]})}function heap32VectorToArray(count,firstElement){var array=[];for(var i=0;i<count;i++){array.push(HEAPU32[firstElement+i*4>>2])}return array}function new_(constructor,argumentList){if(!(constructor instanceof Function)){throw new TypeError(\"new_ called with constructor type \"+typeof constructor+\" which is not a function\")}var dummy=createNamedFunction(constructor.name||\"unknownFunctionName\",function(){});dummy.prototype=constructor.prototype;var obj=new dummy;var r=constructor.apply(obj,argumentList);return r instanceof Object?r:obj}function craftInvokerFunction(humanName,argTypes,classType,cppInvokerFunc,cppTargetFunc){var argCount=argTypes.length;if(argCount<2){throwBindingError(\"argTypes array size mismatch! Must at least get return value and 'this' types!\")}var isClassMethodFunc=argTypes[1]!==null&&classType!==null;var needsDestructorStack=false;for(var i=1;i<argTypes.length;++i){if(argTypes[i]!==null&&argTypes[i].destructorFunction===undefined){needsDestructorStack=true;break}}var returns=argTypes[0].name!==\"void\";var argsList=\"\";var argsListWired=\"\";for(var i=0;i<argCount-2;++i){argsList+=(i!==0?\", \":\"\")+\"arg\"+i;argsListWired+=(i!==0?\", \":\"\")+\"arg\"+i+\"Wired\"}var invokerFnBody=\"return function \"+makeLegalFunctionName(humanName)+\"(\"+argsList+\") {\\n\"+\"if (arguments.length !== \"+(argCount-2)+\") {\\n\"+\"throwBindingError('function \"+humanName+\" called with ' + arguments.length + ' arguments, expected \"+(argCount-2)+\" args!');\\n\"+\"}\\n\";if(needsDestructorStack){invokerFnBody+=\"var destructors = [];\\n\"}var dtorStack=needsDestructorStack?\"destructors\":\"null\";var args1=[\"throwBindingError\",\"invoker\",\"fn\",\"runDestructors\",\"retType\",\"classParam\"];var args2=[throwBindingError,cppInvokerFunc,cppTargetFunc,runDestructors,argTypes[0],argTypes[1]];if(isClassMethodFunc){invokerFnBody+=\"var thisWired = classParam.toWireType(\"+dtorStack+\", this);\\n\"}for(var i=0;i<argCount-2;++i){invokerFnBody+=\"var arg\"+i+\"Wired = argType\"+i+\".toWireType(\"+dtorStack+\", arg\"+i+\"); // \"+argTypes[i+2].name+\"\\n\";args1.push(\"argType\"+i);args2.push(argTypes[i+2])}if(isClassMethodFunc){argsListWired=\"thisWired\"+(argsListWired.length>0?\", \":\"\")+argsListWired}invokerFnBody+=(returns?\"var rv = \":\"\")+\"invoker(fn\"+(argsListWired.length>0?\", \":\"\")+argsListWired+\");\\n\";if(needsDestructorStack){invokerFnBody+=\"runDestructors(destructors);\\n\"}else{for(var i=isClassMethodFunc?1:2;i<argTypes.length;++i){var paramName=i===1?\"thisWired\":\"arg\"+(i-2)+\"Wired\";if(argTypes[i].destructorFunction!==null){invokerFnBody+=paramName+\"_dtor(\"+paramName+\"); // \"+argTypes[i].name+\"\\n\";args1.push(paramName+\"_dtor\");args2.push(argTypes[i].destructorFunction)}}}if(returns){invokerFnBody+=\"var ret = retType.fromWireType(rv);\\n\"+\"return ret;\\n\"}else{}invokerFnBody+=\"}\\n\";args1.push(invokerFnBody);var invokerFunction=new_(Function,args1).apply(null,args2);return invokerFunction}function __embind_register_class_constructor(rawClassType,argCount,rawArgTypesAddr,invokerSignature,invoker,rawConstructor){assert(argCount>0);var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);invoker=embind__requireFunction(invokerSignature,invoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=\"constructor \"+classType.name;if(undefined===classType.registeredClass.constructor_body){classType.registeredClass.constructor_body=[]}if(undefined!==classType.registeredClass.constructor_body[argCount-1]){throw new BindingError(\"Cannot register multiple constructors with identical number of parameters (\"+(argCount-1)+\") for class '\"+classType.name+\"'! Overload resolution is currently only performed using the parameter count, not actual type info!\")}classType.registeredClass.constructor_body[argCount-1]=()=>{throwUnboundTypeError(\"Cannot construct \"+classType.name+\" due to unbound types\",rawArgTypes)};whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){argTypes.splice(1,0,null);classType.registeredClass.constructor_body[argCount-1]=craftInvokerFunction(humanName,argTypes,null,invoker,rawConstructor);return[]});return[]})}function __embind_register_class_function(rawClassType,methodName,argCount,rawArgTypesAddr,invokerSignature,rawInvoker,context,isPureVirtual){var rawArgTypes=heap32VectorToArray(argCount,rawArgTypesAddr);methodName=readLatin1String(methodName);rawInvoker=embind__requireFunction(invokerSignature,rawInvoker);whenDependentTypesAreResolved([],[rawClassType],function(classType){classType=classType[0];var humanName=classType.name+\".\"+methodName;if(methodName.startsWith(\"@@\")){methodName=Symbol[methodName.substring(2)]}if(isPureVirtual){classType.registeredClass.pureVirtualFunctions.push(methodName)}function unboundTypesHandler(){throwUnboundTypeError(\"Cannot call \"+humanName+\" due to unbound types\",rawArgTypes)}var proto=classType.registeredClass.instancePrototype;var method=proto[methodName];if(undefined===method||undefined===method.overloadTable&&method.className!==classType.name&&method.argCount===argCount-2){unboundTypesHandler.argCount=argCount-2;unboundTypesHandler.className=classType.name;proto[methodName]=unboundTypesHandler}else{ensureOverloadTable(proto,methodName,humanName);proto[methodName].overloadTable[argCount-2]=unboundTypesHandler}whenDependentTypesAreResolved([],rawArgTypes,function(argTypes){var memberFunction=craftInvokerFunction(humanName,argTypes,classType,rawInvoker,context);if(undefined===proto[methodName].overloadTable){memberFunction.argCount=argCount-2;proto[methodName]=memberFunction}else{proto[methodName].overloadTable[argCount-2]=memberFunction}return[]});return[]})}var emval_free_list=[];var emval_handle_array=[{},{value:undefined},{value:null},{value:true},{value:false}];function __emval_decref(handle){if(handle>4&&0===--emval_handle_array[handle].refcount){emval_handle_array[handle]=undefined;emval_free_list.push(handle)}}function count_emval_handles(){var count=0;for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){++count}}return count}function get_first_emval(){for(var i=5;i<emval_handle_array.length;++i){if(emval_handle_array[i]!==undefined){return emval_handle_array[i]}}return null}function init_emval(){Module[\"count_emval_handles\"]=count_emval_handles;Module[\"get_first_emval\"]=get_first_emval}var Emval={toValue:handle=>{if(!handle){throwBindingError(\"Cannot use deleted val. handle = \"+handle)}return emval_handle_array[handle].value},toHandle:value=>{switch(value){case undefined:return 1;case null:return 2;case true:return 3;case false:return 4;default:{var handle=emval_free_list.length?emval_free_list.pop():emval_handle_array.length;emval_handle_array[handle]={refcount:1,value:value};return handle}}}};function __embind_register_emval(rawType,name){name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(handle){var rv=Emval.toValue(handle);__emval_decref(handle);return rv},\"toWireType\":function(destructors,value){return Emval.toHandle(value)},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:null})}function embindRepr(v){if(v===null){return\"null\"}var t=typeof v;if(t===\"object\"||t===\"array\"||t===\"function\"){return v.toString()}else{return\"\"+v}}function floatReadValueFromPointer(name,shift){switch(shift){case 2:return function(pointer){return this[\"fromWireType\"](HEAPF32[pointer>>2])};case 3:return function(pointer){return this[\"fromWireType\"](HEAPF64[pointer>>3])};default:throw new TypeError(\"Unknown float type: \"+name)}}function __embind_register_float(rawType,name,size){var shift=getShiftFromSize(size);name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":function(value){return value},\"toWireType\":function(destructors,value){return value},\"argPackAdvance\":8,\"readValueFromPointer\":floatReadValueFromPointer(name,shift),destructorFunction:null})}function __embind_register_function(name,argCount,rawArgTypesAddr,signature,rawInvoker,fn){var argTypes=heap32VectorToArray(argCount,rawArgTypesAddr);name=readLatin1String(name);rawInvoker=embind__requireFunction(signature,rawInvoker);exposePublicSymbol(name,function(){throwUnboundTypeError(\"Cannot call \"+name+\" due to unbound types\",argTypes)},argCount-1);whenDependentTypesAreResolved([],argTypes,function(argTypes){var invokerArgsArray=[argTypes[0],null].concat(argTypes.slice(1));replacePublicSymbol(name,craftInvokerFunction(name,invokerArgsArray,null,rawInvoker,fn),argCount-1);return[]})}function integerReadValueFromPointer(name,shift,signed){switch(shift){case 0:return signed?function readS8FromPointer(pointer){return HEAP8[pointer]}:function readU8FromPointer(pointer){return HEAPU8[pointer]};case 1:return signed?function readS16FromPointer(pointer){return HEAP16[pointer>>1]}:function readU16FromPointer(pointer){return HEAPU16[pointer>>1]};case 2:return signed?function readS32FromPointer(pointer){return HEAP32[pointer>>2]}:function readU32FromPointer(pointer){return HEAPU32[pointer>>2]};default:throw new TypeError(\"Unknown integer type: \"+name)}}function __embind_register_integer(primitiveType,name,size,minRange,maxRange){name=readLatin1String(name);if(maxRange===-1){maxRange=4294967295}var shift=getShiftFromSize(size);var fromWireType=value=>value;if(minRange===0){var bitshift=32-8*size;fromWireType=value=>value<<bitshift>>>bitshift}var isUnsignedType=name.includes(\"unsigned\");var checkAssertions=(value,toTypeName)=>{};var toWireType;if(isUnsignedType){toWireType=function(destructors,value){checkAssertions(value,this.name);return value>>>0}}else{toWireType=function(destructors,value){checkAssertions(value,this.name);return value}}registerType(primitiveType,{name:name,\"fromWireType\":fromWireType,\"toWireType\":toWireType,\"argPackAdvance\":8,\"readValueFromPointer\":integerReadValueFromPointer(name,shift,minRange!==0),destructorFunction:null})}function __embind_register_memory_view(rawType,dataTypeIndex,name){var typeMapping=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array];var TA=typeMapping[dataTypeIndex];function decodeMemoryView(handle){handle=handle>>2;var heap=HEAPU32;var size=heap[handle];var data=heap[handle+1];return new TA(buffer,data,size)}name=readLatin1String(name);registerType(rawType,{name:name,\"fromWireType\":decodeMemoryView,\"argPackAdvance\":8,\"readValueFromPointer\":decodeMemoryView},{ignoreDuplicateRegistrations:true})}function __embind_register_std_string(rawType,name){name=readLatin1String(name);var stdStringIsUTF8=name===\"std::string\";registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var payload=value+4;var str;if(stdStringIsUTF8){var decodeStartPtr=payload;for(var i=0;i<=length;++i){var currentBytePtr=payload+i;if(i==length||HEAPU8[currentBytePtr]==0){var maxRead=currentBytePtr-decodeStartPtr;var stringSegment=UTF8ToString(decodeStartPtr,maxRead);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+1}}}else{var a=new Array(length);for(var i=0;i<length;++i){a[i]=String.fromCharCode(HEAPU8[payload+i])}str=a.join(\"\")}_free(value);return str},\"toWireType\":function(destructors,value){if(value instanceof ArrayBuffer){value=new Uint8Array(value)}var length;var valueIsOfTypeString=typeof value==\"string\";if(!(valueIsOfTypeString||value instanceof Uint8Array||value instanceof Uint8ClampedArray||value instanceof Int8Array)){throwBindingError(\"Cannot pass non-string to std::string\")}if(stdStringIsUTF8&&valueIsOfTypeString){length=lengthBytesUTF8(value)}else{length=value.length}var base=_malloc(4+length+1);var ptr=base+4;HEAPU32[base>>2]=length;if(stdStringIsUTF8&&valueIsOfTypeString){stringToUTF8(value,ptr,length+1)}else{if(valueIsOfTypeString){for(var i=0;i<length;++i){var charCode=value.charCodeAt(i);if(charCode>255){_free(ptr);throwBindingError(\"String has UTF-16 code units that do not fit in 8 bits\")}HEAPU8[ptr+i]=charCode}}else{for(var i=0;i<length;++i){HEAPU8[ptr+i]=value[i]}}}if(destructors!==null){destructors.push(_free,base)}return base},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}var UTF16Decoder=typeof TextDecoder!=\"undefined\"?new TextDecoder(\"utf-16le\"):undefined;function UTF16ToString(ptr,maxBytesToRead){var endPtr=ptr;var idx=endPtr>>1;var maxIdx=idx+maxBytesToRead/2;while(!(idx>=maxIdx)&&HEAPU16[idx])++idx;endPtr=idx<<1;if(endPtr-ptr>32&&UTF16Decoder)return UTF16Decoder.decode(HEAPU8.subarray(ptr,endPtr));var str=\"\";for(var i=0;!(i>=maxBytesToRead/2);++i){var codeUnit=HEAP16[ptr+i*2>>1];if(codeUnit==0)break;str+=String.fromCharCode(codeUnit)}return str}function stringToUTF16(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<2)return 0;maxBytesToWrite-=2;var startPtr=outPtr;var numCharsToWrite=maxBytesToWrite<str.length*2?maxBytesToWrite/2:str.length;for(var i=0;i<numCharsToWrite;++i){var codeUnit=str.charCodeAt(i);HEAP16[outPtr>>1]=codeUnit;outPtr+=2}HEAP16[outPtr>>1]=0;return outPtr-startPtr}function lengthBytesUTF16(str){return str.length*2}function UTF32ToString(ptr,maxBytesToRead){var i=0;var str=\"\";while(!(i>=maxBytesToRead/4)){var utf32=HEAP32[ptr+i*4>>2];if(utf32==0)break;++i;if(utf32>=65536){var ch=utf32-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}else{str+=String.fromCharCode(utf32)}}return str}function stringToUTF32(str,outPtr,maxBytesToWrite){if(maxBytesToWrite===undefined){maxBytesToWrite=2147483647}if(maxBytesToWrite<4)return 0;var startPtr=outPtr;var endPtr=startPtr+maxBytesToWrite-4;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343){var trailSurrogate=str.charCodeAt(++i);codeUnit=65536+((codeUnit&1023)<<10)|trailSurrogate&1023}HEAP32[outPtr>>2]=codeUnit;outPtr+=4;if(outPtr+4>endPtr)break}HEAP32[outPtr>>2]=0;return outPtr-startPtr}function lengthBytesUTF32(str){var len=0;for(var i=0;i<str.length;++i){var codeUnit=str.charCodeAt(i);if(codeUnit>=55296&&codeUnit<=57343)++i;len+=4}return len}function __embind_register_std_wstring(rawType,charSize,name){name=readLatin1String(name);var decodeString,encodeString,getHeap,lengthBytesUTF,shift;if(charSize===2){decodeString=UTF16ToString;encodeString=stringToUTF16;lengthBytesUTF=lengthBytesUTF16;getHeap=()=>HEAPU16;shift=1}else if(charSize===4){decodeString=UTF32ToString;encodeString=stringToUTF32;lengthBytesUTF=lengthBytesUTF32;getHeap=()=>HEAPU32;shift=2}registerType(rawType,{name:name,\"fromWireType\":function(value){var length=HEAPU32[value>>2];var HEAP=getHeap();var str;var decodeStartPtr=value+4;for(var i=0;i<=length;++i){var currentBytePtr=value+4+i*charSize;if(i==length||HEAP[currentBytePtr>>shift]==0){var maxReadBytes=currentBytePtr-decodeStartPtr;var stringSegment=decodeString(decodeStartPtr,maxReadBytes);if(str===undefined){str=stringSegment}else{str+=String.fromCharCode(0);str+=stringSegment}decodeStartPtr=currentBytePtr+charSize}}_free(value);return str},\"toWireType\":function(destructors,value){if(!(typeof value==\"string\")){throwBindingError(\"Cannot pass non-string to C++ string type \"+name)}var length=lengthBytesUTF(value);var ptr=_malloc(4+length+charSize);HEAPU32[ptr>>2]=length>>shift;encodeString(value,ptr+4,length+charSize);if(destructors!==null){destructors.push(_free,ptr)}return ptr},\"argPackAdvance\":8,\"readValueFromPointer\":simpleReadValueFromPointer,destructorFunction:function(ptr){_free(ptr)}})}function __embind_register_value_object(rawType,name,constructorSignature,rawConstructor,destructorSignature,rawDestructor){structRegistrations[rawType]={name:readLatin1String(name),rawConstructor:embind__requireFunction(constructorSignature,rawConstructor),rawDestructor:embind__requireFunction(destructorSignature,rawDestructor),fields:[]}}function __embind_register_value_object_field(structType,fieldName,getterReturnType,getterSignature,getter,getterContext,setterArgumentType,setterSignature,setter,setterContext){structRegistrations[structType].fields.push({fieldName:readLatin1String(fieldName),getterReturnType:getterReturnType,getter:embind__requireFunction(getterSignature,getter),getterContext:getterContext,setterArgumentType:setterArgumentType,setter:embind__requireFunction(setterSignature,setter),setterContext:setterContext})}function __embind_register_void(rawType,name){name=readLatin1String(name);registerType(rawType,{isVoid:true,name:name,\"argPackAdvance\":0,\"fromWireType\":function(){return undefined},\"toWireType\":function(destructors,o){return undefined}})}function __emval_incref(handle){if(handle>4){emval_handle_array[handle].refcount+=1}}function requireRegisteredType(rawType,humanName){var impl=registeredTypes[rawType];if(undefined===impl){throwBindingError(humanName+\" has unknown type \"+getTypeName(rawType))}return impl}function __emval_take_value(type,arg){type=requireRegisteredType(type,\"_emval_take_value\");var v=type[\"readValueFromPointer\"](arg);return Emval.toHandle(v)}function _abort(){abort(\"\")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.copyWithin(dest,src,src+num)}function getHeapMax(){return 2147483648}function emscripten_realloc_buffer(size){try{wasmMemory.grow(size-buffer.byteLength+65535>>>16);updateGlobalBufferAndViews(wasmMemory.buffer);return 1}catch(e){}}function _emscripten_resize_heap(requestedSize){var oldSize=HEAPU8.length;requestedSize=requestedSize>>>0;var maxHeapSize=getHeapMax();if(requestedSize>maxHeapSize){return false}let alignUp=(x,multiple)=>x+(multiple-x%multiple)%multiple;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(requestedSize,overGrownHeapSize),65536));var replacement=emscripten_realloc_buffer(newSize);if(replacement){return true}}return false}var SYSCALLS={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}};function _fd_close(fd){return 52}function _fd_seek(fd,offset_low,offset_high,whence,newOffset){return 70}var printCharBuffers=[null,[],[]];function printChar(stream,curr){var buffer=printCharBuffers[stream];if(curr===0||curr===10){(stream===1?out:err)(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}}function _fd_write(fd,iov,iovcnt,pnum){var num=0;for(var i=0;i<iovcnt;i++){var ptr=HEAPU32[iov>>2];var len=HEAPU32[iov+4>>2];iov+=8;for(var j=0;j<len;j++){printChar(fd,HEAPU8[ptr+j])}num+=len}HEAPU32[pnum>>2]=num;return 0}function _llvm_eh_typeid_for(type){return type}function getCFunc(ident){var func=Module[\"_\"+ident];return func}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function ccall(ident,returnType,argTypes,args,opts){var toC={\"string\":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\":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<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);function onDone(ret){if(stack!==0)stackRestore(stack);return convertReturnValue(ret)}ret=onDone(ret);return ret}InternalError=Module[\"InternalError\"]=extendError(Error,\"InternalError\");embind_init_charCodes();BindingError=Module[\"BindingError\"]=extendError(Error,\"BindingError\");init_ClassHandle();init_embind();init_RegisteredPointer();UnboundTypeError=Module[\"UnboundTypeError\"]=extendError(Error,\"UnboundTypeError\");init_emval();var asmLibraryArg={\"L\":___cxa_begin_catch,\"v\":___cxa_end_catch,\"c\":___cxa_find_matching_catch_2,\"k\":___cxa_find_matching_catch_3,\"i\":___cxa_throw,\"f\":___resumeException,\"A\":__embind_finalize_value_object,\"D\":__embind_register_bigint,\"I\":__embind_register_bool,\"y\":__embind_register_class,\"x\":__embind_register_class_constructor,\"a\":__embind_register_class_function,\"H\":__embind_register_emval,\"u\":__embind_register_float,\"o\":__embind_register_function,\"h\":__embind_register_integer,\"d\":__embind_register_memory_view,\"t\":__embind_register_std_string,\"q\":__embind_register_std_wstring,\"p\":__embind_register_value_object,\"B\":__embind_register_value_object_field,\"J\":__embind_register_void,\"N\":__emval_decref,\"O\":__emval_incref,\"n\":__emval_take_value,\"r\":_abort,\"G\":_emscripten_memcpy_big,\"E\":_emscripten_resize_heap,\"F\":_fd_close,\"C\":_fd_seek,\"s\":_fd_write,\"b\":invoke_ii,\"z\":invoke_iii,\"w\":invoke_iiii,\"e\":invoke_vi,\"l\":invoke_vii,\"m\":invoke_viii,\"j\":invoke_viiii,\"K\":invoke_viiiiii,\"g\":invoke_viiiiiiiiii,\"M\":_llvm_eh_typeid_for};var asm=createWasm();var ___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=function(){return(___wasm_call_ctors=Module[\"___wasm_call_ctors\"]=Module[\"asm\"][\"Q\"]).apply(null,arguments)};var _malloc=Module[\"_malloc\"]=function(){return(_malloc=Module[\"_malloc\"]=Module[\"asm\"][\"R\"]).apply(null,arguments)};var ___cxa_free_exception=Module[\"___cxa_free_exception\"]=function(){return(___cxa_free_exception=Module[\"___cxa_free_exception\"]=Module[\"asm\"][\"S\"]).apply(null,arguments)};var _free=Module[\"_free\"]=function(){return(_free=Module[\"_free\"]=Module[\"asm\"][\"U\"]).apply(null,arguments)};var ___getTypeName=Module[\"___getTypeName\"]=function(){return(___getTypeName=Module[\"___getTypeName\"]=Module[\"asm\"][\"V\"]).apply(null,arguments)};var __embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=function(){return(__embind_initialize_bindings=Module[\"__embind_initialize_bindings\"]=Module[\"asm\"][\"W\"]).apply(null,arguments)};var setTempRet0=Module[\"setTempRet0\"]=function(){return(setTempRet0=Module[\"setTempRet0\"]=Module[\"asm\"][\"X\"]).apply(null,arguments)};var stackSave=Module[\"stackSave\"]=function(){return(stackSave=Module[\"stackSave\"]=Module[\"asm\"][\"Y\"]).apply(null,arguments)};var stackRestore=Module[\"stackRestore\"]=function(){return(stackRestore=Module[\"stackRestore\"]=Module[\"asm\"][\"Z\"]).apply(null,arguments)};var stackAlloc=Module[\"stackAlloc\"]=function(){return(stackAlloc=Module[\"stackAlloc\"]=Module[\"asm\"][\"_\"]).apply(null,arguments)};var ___cxa_can_catch=Module[\"___cxa_can_catch\"]=function(){return(___cxa_can_catch=Module[\"___cxa_can_catch\"]=Module[\"asm\"][\"$\"]).apply(null,arguments)};var ___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=function(){return(___cxa_is_pointer_type=Module[\"___cxa_is_pointer_type\"]=Module[\"asm\"][\"aa\"]).apply(null,arguments)};var dynCall_ji=Module[\"dynCall_ji\"]=function(){return(dynCall_ji=Module[\"dynCall_ji\"]=Module[\"asm\"][\"ba\"]).apply(null,arguments)};var dynCall_iiji=Module[\"dynCall_iiji\"]=function(){return(dynCall_iiji=Module[\"dynCall_iiji\"]=Module[\"asm\"][\"ca\"]).apply(null,arguments)};var dynCall_jiji=Module[\"dynCall_jiji\"]=function(){return(dynCall_jiji=Module[\"dynCall_jiji\"]=Module[\"asm\"][\"da\"]).apply(null,arguments)};function invoke_iii(index,a1,a2){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_ii(index,a1){var sp=stackSave();try{return getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiiiiiii(index,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6,a7,a8,a9,a10)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vi(index,a1){var sp=stackSave();try{getWasmTableEntry(index)(a1)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viii(index,a1,a2,a3){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiii(index,a1,a2,a3,a4){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_vii(index,a1,a2){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_iiii(index,a1,a2,a3){var sp=stackSave();try{return getWasmTableEntry(index)(a1,a2,a3)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){var sp=stackSave();try{getWasmTableEntry(index)(a1,a2,a3,a4,a5,a6)}catch(e){stackRestore(sp);if(e!==e+0)throw e;_setThrew(1,0)}}Module[\"ccall\"]=ccall;var calledRun;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();readyPromiseResolve(Module);if(Module[\"onRuntimeInitialized\"])Module[\"onRuntimeInitialized\"]();postRun()}if(Module[\"setStatus\"]){Module[\"setStatus\"](\"Running...\");setTimeout(function(){setTimeout(function(){Module[\"setStatus\"](\"\")},1);doRun()},1)}else{doRun()}}if(Module[\"preInit\"]){if(typeof Module[\"preInit\"]==\"function\")Module[\"preInit\"]=[Module[\"preInit\"]];while(Module[\"preInit\"].length>0){Module[\"preInit\"].pop()()}}run();\n\n\n return Module.ready\n}\n);\n})();\nif (typeof exports === 'object' && typeof module === 'object')\n module.exports = Module;\nelse if (typeof define === 'function' && define['amd'])\n define([], function() { return Module; });\nelse if (typeof exports === 'object')\n exports[\"Module\"] = Module;\n","// jshint ignore: start\n/* eslint-disable */\n\n/*\n Copyright 2011 notmasteryet\n\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 http://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// - The JPEG specification can be found in the ITU CCITT Recommendation T.81\n// (www.w3.org/Graphics/JPEG/itu-t81.pdf)\n// - The JFIF specification can be found in the JPEG File Interchange Format\n// (www.w3.org/Graphics/JPEG/jfif3.pdf)\n// - The Adobe Application-Specific JPEG markers in the Supporting the DCT Filters\n// in PostScript Level 2, Technical Note #5116\n// (partners.adobe.com/public/developer/en/ps/sdk/5116.DCT_Filter.pdf)\n\nvar ColorSpace = { Unkown: 0, Grayscale: 1, AdobeRGB: 2, RGB: 3, CYMK: 4 };\nvar JpegImage = (function jpegImage() {\n 'use strict';\n var dctZigZag = new Int32Array([\n 0, 1, 8, 16, 9, 2, 3, 10, 17, 24, 32, 25, 18, 11, 4, 5, 12, 19, 26, 33, 40,\n 48, 41, 34, 27, 20, 13, 6, 7, 14, 21, 28, 35, 42, 49, 56, 57, 50, 43, 36,\n 29, 22, 15, 23, 30, 37, 44, 51, 58, 59, 52, 45, 38, 31, 39, 46, 53, 60, 61,\n 54, 47, 55, 62, 63,\n ]);\n\n var dctCos1 = 4017; // cos(pi/16)\n var dctSin1 = 799; // sin(pi/16)\n var dctCos3 = 3406; // cos(3*pi/16)\n var dctSin3 = 2276; // sin(3*pi/16)\n var dctCos6 = 1567; // cos(6*pi/16)\n var dctSin6 = 3784; // sin(6*pi/16)\n var dctSqrt2 = 5793; // sqrt(2)\n var dctSqrt1d2 = 2896; // sqrt(2) / 2\n\n function buildHuffmanTable(codeLengths, values) {\n var k = 0,\n code = [],\n i,\n j,\n length = 16;\n while (length > 0 && !codeLengths[length - 1]) length--;\n code.push({ children: [], index: 0 });\n var p = code[0],\n q;\n for (i = 0; i < length; i++) {\n for (j = 0; j < codeLengths[i]; j++) {\n p = code.pop();\n p.children[p.index] = values[k];\n while (p.index > 0) {\n p = code.pop();\n }\n p.index++;\n code.push(p);\n while (code.length <= i) {\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n k++;\n }\n if (i + 1 < length) {\n // p here points to last code\n code.push((q = { children: [], index: 0 }));\n p.children[p.index] = q.children;\n p = q;\n }\n }\n return code[0].children;\n }\n\n function getBlockBufferOffset(component, row, col) {\n return 64 * ((component.blocksPerLine + 1) * row + col);\n }\n\n function decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successivePrev,\n successive\n ) {\n var precision = frame.precision;\n var samplesPerLine = frame.samplesPerLine;\n var scanLines = frame.scanLines;\n var mcusPerLine = frame.mcusPerLine;\n var progressive = frame.progressive;\n var maxH = frame.maxH,\n maxV = frame.maxV;\n\n var startOffset = offset,\n bitsData = 0,\n bitsCount = 0;\n\n function readBit() {\n if (bitsCount > 0) {\n bitsCount--;\n return (bitsData >> bitsCount) & 1;\n }\n bitsData = data[offset++];\n if (bitsData == 0xff) {\n var nextByte = data[offset++];\n if (nextByte) {\n throw (\n 'unexpected marker: ' + ((bitsData << 8) | nextByte).toString(16)\n );\n }\n // unstuff 0\n }\n bitsCount = 7;\n return bitsData >>> 7;\n }\n\n function decodeHuffman(tree) {\n var node = tree;\n var bit;\n while ((bit = readBit()) !== null) {\n node = node[bit];\n if (typeof node === 'number') return node;\n if (typeof node !== 'object') throw 'invalid huffman sequence';\n }\n return null;\n }\n\n function receive(length) {\n var n = 0;\n while (length > 0) {\n var bit = readBit();\n if (bit === null) return;\n n = (n << 1) | bit;\n length--;\n }\n return n;\n }\n\n function receiveAndExtend(length) {\n var n = receive(length);\n if (n >= 1 << (length - 1)) return n;\n return n + (-1 << length) + 1;\n }\n\n function decodeBaseline(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t);\n component.blockData[offset] = component.pred += diff;\n var k = 1;\n while (k < 64) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) break;\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] = receiveAndExtend(s);\n k++;\n }\n }\n\n function decodeDCFirst(component, offset) {\n var t = decodeHuffman(component.huffmanTableDC);\n var diff = t === 0 ? 0 : receiveAndExtend(t) << successive;\n component.blockData[offset] = component.pred += diff;\n }\n\n function decodeDCSuccessive(component, offset) {\n component.blockData[offset] |= readBit() << successive;\n }\n\n var eobrun = 0;\n function decodeACFirst(component, offset) {\n if (eobrun > 0) {\n eobrun--;\n return;\n }\n var k = spectralStart,\n e = spectralEnd;\n while (k <= e) {\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15,\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r) - 1;\n break;\n }\n k += 16;\n continue;\n }\n k += r;\n var z = dctZigZag[k];\n component.blockData[offset + z] =\n receiveAndExtend(s) * (1 << successive);\n k++;\n }\n }\n\n var successiveACState = 0,\n successiveACNextValue;\n function decodeACSuccessive(component, offset) {\n var k = spectralStart,\n e = spectralEnd,\n r = 0;\n while (k <= e) {\n var z = dctZigZag[k];\n switch (successiveACState) {\n case 0: // initial state\n var rs = decodeHuffman(component.huffmanTableAC);\n var s = rs & 15;\n r = rs >> 4;\n if (s === 0) {\n if (r < 15) {\n eobrun = receive(r) + (1 << r);\n successiveACState = 4;\n } else {\n r = 16;\n successiveACState = 1;\n }\n } else {\n if (s !== 1) throw 'invalid ACn encoding';\n successiveACNextValue = receiveAndExtend(s);\n successiveACState = r ? 2 : 3;\n }\n continue;\n case 1: // skipping r zero items\n case 2:\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n r--;\n if (r === 0) successiveACState = successiveACState == 2 ? 3 : 0;\n }\n break;\n case 3: // set value for a zero item\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n } else {\n component.blockData[offset + z] =\n successiveACNextValue << successive;\n successiveACState = 0;\n }\n break;\n case 4: // eob\n if (component.blockData[offset + z]) {\n component.blockData[offset + z] += readBit() << successive;\n }\n break;\n }\n k++;\n }\n if (successiveACState === 4) {\n eobrun--;\n if (eobrun === 0) successiveACState = 0;\n }\n }\n\n function decodeMcu(component, decode, mcu, row, col) {\n var mcuRow = (mcu / mcusPerLine) | 0;\n var mcuCol = mcu % mcusPerLine;\n var blockRow = mcuRow * component.v + row;\n var blockCol = mcuCol * component.h + col;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n\n function decodeBlock(component, decode, mcu) {\n var blockRow = (mcu / component.blocksPerLine) | 0;\n var blockCol = mcu % component.blocksPerLine;\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n decode(component, offset);\n }\n\n var componentsLength = components.length;\n var component, i, j, k, n;\n var decodeFn;\n if (progressive) {\n if (spectralStart === 0)\n decodeFn = successivePrev === 0 ? decodeDCFirst : decodeDCSuccessive;\n else decodeFn = successivePrev === 0 ? decodeACFirst : decodeACSuccessive;\n } else {\n decodeFn = decodeBaseline;\n }\n\n var mcu = 0,\n marker;\n var mcuExpected;\n if (componentsLength == 1) {\n mcuExpected = components[0].blocksPerLine * components[0].blocksPerColumn;\n } else {\n mcuExpected = mcusPerLine * frame.mcusPerColumn;\n }\n if (!resetInterval) {\n resetInterval = mcuExpected;\n }\n\n var h, v;\n while (mcu < mcuExpected) {\n // reset interval stuff\n for (i = 0; i < componentsLength; i++) {\n components[i].pred = 0;\n }\n eobrun = 0;\n\n if (componentsLength == 1) {\n component = components[0];\n for (n = 0; n < resetInterval; n++) {\n decodeBlock(component, decodeFn, mcu);\n mcu++;\n }\n } else {\n for (n = 0; n < resetInterval; n++) {\n for (i = 0; i < componentsLength; i++) {\n component = components[i];\n h = component.h;\n v = component.v;\n for (j = 0; j < v; j++) {\n for (k = 0; k < h; k++) {\n decodeMcu(component, decodeFn, mcu, j, k);\n }\n }\n }\n mcu++;\n }\n }\n\n // find marker\n bitsCount = 0;\n marker = (data[offset] << 8) | data[offset + 1];\n if (marker <= 0xff00) {\n throw 'marker was not found';\n }\n\n if (marker >= 0xffd0 && marker <= 0xffd7) {\n // RSTx\n offset += 2;\n } else {\n break;\n }\n }\n\n return offset - startOffset;\n }\n\n // A port of poppler's IDCT method which in turn is taken from:\n // Christoph Loeffler, Adriaan Ligtenberg, George S. Moschytz,\n // \"Practical Fast 1-D DCT Algorithms with 11 Multiplications\",\n // IEEE Intl. Conf. on Acoustics, Speech & Signal Processing, 1989,\n // 988-991.\n function quantizeAndInverse(component, blockBufferOffset, p) {\n var qt = component.quantizationTable;\n var v0, v1, v2, v3, v4, v5, v6, v7, t;\n var i;\n\n // dequant\n for (i = 0; i < 64; i++) {\n p[i] = component.blockData[blockBufferOffset + i] * qt[i];\n }\n\n // inverse DCT on rows\n for (i = 0; i < 8; ++i) {\n var row = 8 * i;\n\n // check for all-zero AC coefficients\n if (\n p[1 + row] === 0 &&\n p[2 + row] === 0 &&\n p[3 + row] === 0 &&\n p[4 + row] === 0 &&\n p[5 + row] === 0 &&\n p[6 + row] === 0 &&\n p[7 + row] === 0\n ) {\n t = (dctSqrt2 * p[0 + row] + 512) >> 10;\n p[0 + row] = t;\n p[1 + row] = t;\n p[2 + row] = t;\n p[3 + row] = t;\n p[4 + row] = t;\n p[5 + row] = t;\n p[6 + row] = t;\n p[7 + row] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0 + row] + 128) >> 8;\n v1 = (dctSqrt2 * p[4 + row] + 128) >> 8;\n v2 = p[2 + row];\n v3 = p[6 + row];\n v4 = (dctSqrt1d2 * (p[1 + row] - p[7 + row]) + 128) >> 8;\n v7 = (dctSqrt1d2 * (p[1 + row] + p[7 + row]) + 128) >> 8;\n v5 = p[3 + row] << 4;\n v6 = p[5 + row] << 4;\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 128) >> 8;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 128) >> 8;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 + row] = v0 + v7;\n p[7 + row] = v0 - v7;\n p[1 + row] = v1 + v6;\n p[6 + row] = v1 - v6;\n p[2 + row] = v2 + v5;\n p[5 + row] = v2 - v5;\n p[3 + row] = v3 + v4;\n p[4 + row] = v3 - v4;\n }\n\n // inverse DCT on columns\n for (i = 0; i < 8; ++i) {\n var col = i;\n\n // check for all-zero AC coefficients\n if (\n p[1 * 8 + col] === 0 &&\n p[2 * 8 + col] === 0 &&\n p[3 * 8 + col] === 0 &&\n p[4 * 8 + col] === 0 &&\n p[5 * 8 + col] === 0 &&\n p[6 * 8 + col] === 0 &&\n p[7 * 8 + col] === 0\n ) {\n t = (dctSqrt2 * p[i + 0] + 8192) >> 14;\n p[0 * 8 + col] = t;\n p[1 * 8 + col] = t;\n p[2 * 8 + col] = t;\n p[3 * 8 + col] = t;\n p[4 * 8 + col] = t;\n p[5 * 8 + col] = t;\n p[6 * 8 + col] = t;\n p[7 * 8 + col] = t;\n continue;\n }\n\n // stage 4\n v0 = (dctSqrt2 * p[0 * 8 + col] + 2048) >> 12;\n v1 = (dctSqrt2 * p[4 * 8 + col] + 2048) >> 12;\n v2 = p[2 * 8 + col];\n v3 = p[6 * 8 + col];\n v4 = (dctSqrt1d2 * (p[1 * 8 + col] - p[7 * 8 + col]) + 2048) >> 12;\n v7 = (dctSqrt1d2 * (p[1 * 8 + col] + p[7 * 8 + col]) + 2048) >> 12;\n v5 = p[3 * 8 + col];\n v6 = p[5 * 8 + col];\n\n // stage 3\n t = (v0 - v1 + 1) >> 1;\n v0 = (v0 + v1 + 1) >> 1;\n v1 = t;\n t = (v2 * dctSin6 + v3 * dctCos6 + 2048) >> 12;\n v2 = (v2 * dctCos6 - v3 * dctSin6 + 2048) >> 12;\n v3 = t;\n t = (v4 - v6 + 1) >> 1;\n v4 = (v4 + v6 + 1) >> 1;\n v6 = t;\n t = (v7 + v5 + 1) >> 1;\n v5 = (v7 - v5 + 1) >> 1;\n v7 = t;\n\n // stage 2\n t = (v0 - v3 + 1) >> 1;\n v0 = (v0 + v3 + 1) >> 1;\n v3 = t;\n t = (v1 - v2 + 1) >> 1;\n v1 = (v1 + v2 + 1) >> 1;\n v2 = t;\n t = (v4 * dctSin3 + v7 * dctCos3 + 2048) >> 12;\n v4 = (v4 * dctCos3 - v7 * dctSin3 + 2048) >> 12;\n v7 = t;\n t = (v5 * dctSin1 + v6 * dctCos1 + 2048) >> 12;\n v5 = (v5 * dctCos1 - v6 * dctSin1 + 2048) >> 12;\n v6 = t;\n\n // stage 1\n p[0 * 8 + col] = v0 + v7;\n p[7 * 8 + col] = v0 - v7;\n p[1 * 8 + col] = v1 + v6;\n p[6 * 8 + col] = v1 - v6;\n p[2 * 8 + col] = v2 + v5;\n p[5 * 8 + col] = v2 - v5;\n p[3 * 8 + col] = v3 + v4;\n p[4 * 8 + col] = v3 - v4;\n }\n\n // convert to 8-bit integers\n for (i = 0; i < 64; ++i) {\n var index = blockBufferOffset + i;\n var q = p[i];\n q =\n q <= -2056 / component.bitConversion\n ? 0\n : q >= 2024 / component.bitConversion\n ? 255 / component.bitConversion\n : (q + 2056 / component.bitConversion) >> 4;\n component.blockData[index] = q;\n }\n }\n\n function buildComponentData(frame, component) {\n var lines = [];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n var computationBuffer = new Int32Array(64);\n\n var i,\n j,\n ll = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var offset = getBlockBufferOffset(component, blockRow, blockCol);\n quantizeAndInverse(component, offset, computationBuffer);\n }\n }\n return component.blockData;\n }\n\n function clampToUint8(a) {\n return a <= 0 ? 0 : a >= 255 ? 255 : a | 0;\n }\n\n // create a JPEG Image class\n class JpegImage {}\n\n // setting up all the prototype functions\n // javascript new version of setting up prototype functions\n Object.setPrototypeOf(JpegImage.prototype, {\n load: function load(path) {\n var handleData = function (data) {\n this.parse(data);\n if (this.onload) this.onload();\n }.bind(this);\n\n if (path.indexOf('data:') > -1) {\n var offset = path.indexOf('base64,') + 7;\n var data = atob(path.substring(offset));\n var arr = new Uint8Array(data.length);\n for (var i = data.length - 1; i >= 0; i--) {\n arr[i] = data.charCodeAt(i);\n }\n handleData(data);\n } else {\n var xhr = new XMLHttpRequest();\n xhr.open('GET', path, true);\n xhr.responseType = 'arraybuffer';\n xhr.onload = function () {\n // TODO catch parse error\n var data = new Uint8Array(xhr.response);\n handleData(data);\n }.bind(this);\n xhr.send(null);\n }\n },\n parse: function parse(data) {\n function readUint16() {\n var value = (data[offset] << 8) | data[offset + 1];\n offset += 2;\n return value;\n }\n\n function readDataBlock() {\n var length = readUint16();\n var array = data.subarray(offset, offset + length - 2);\n offset += array.length;\n return array;\n }\n\n function prepareComponents(frame) {\n var mcusPerLine = Math.ceil(frame.samplesPerLine / 8 / frame.maxH);\n var mcusPerColumn = Math.ceil(frame.scanLines / 8 / frame.maxV);\n for (var i = 0; i < frame.components.length; i++) {\n component = frame.components[i];\n var blocksPerLine = Math.ceil(\n (Math.ceil(frame.samplesPerLine / 8) * component.h) / frame.maxH\n );\n var blocksPerColumn = Math.ceil(\n (Math.ceil(frame.scanLines / 8) * component.v) / frame.maxV\n );\n var blocksPerLineForMcu = mcusPerLine * component.h;\n var blocksPerColumnForMcu = mcusPerColumn * component.v;\n\n var blocksBufferSize =\n 64 * blocksPerColumnForMcu * (blocksPerLineForMcu + 1);\n component.blockData = new Int16Array(blocksBufferSize);\n component.blocksPerLine = blocksPerLine;\n component.blocksPerColumn = blocksPerColumn;\n }\n frame.mcusPerLine = mcusPerLine;\n frame.mcusPerColumn = mcusPerColumn;\n }\n\n var offset = 0,\n length = data.length;\n var jfif = null;\n var adobe = null;\n var pixels = null;\n var frame, resetInterval;\n var quantizationTables = [];\n var huffmanTablesAC = [],\n huffmanTablesDC = [];\n var fileMarker = readUint16();\n if (fileMarker != 0xffd8) {\n // SOI (Start of Image)\n throw 'SOI not found';\n }\n\n fileMarker = readUint16();\n while (fileMarker != 0xffd9) {\n // EOI (End of image)\n var i, j, l;\n switch (fileMarker) {\n case 0xffe0: // APP0 (Application Specific)\n case 0xffe1: // APP1\n case 0xffe2: // APP2\n case 0xffe3: // APP3\n case 0xffe4: // APP4\n case 0xffe5: // APP5\n case 0xffe6: // APP6\n case 0xffe7: // APP7\n case 0xffe8: // APP8\n case 0xffe9: // APP9\n case 0xffea: // APP10\n case 0xffeb: // APP11\n case 0xffec: // APP12\n case 0xffed: // APP13\n case 0xffee: // APP14\n case 0xffef: // APP15\n case 0xfffe: // COM (Comment)\n var appData = readDataBlock();\n\n if (fileMarker === 0xffe0) {\n if (\n appData[0] === 0x4a &&\n appData[1] === 0x46 &&\n appData[2] === 0x49 &&\n appData[3] === 0x46 &&\n appData[4] === 0\n ) {\n // 'JFIF\\x00'\n jfif = {\n version: { major: appData[5], minor: appData[6] },\n densityUnits: appData[7],\n xDensity: (appData[8] << 8) | appData[9],\n yDensity: (appData[10] << 8) | appData[11],\n thumbWidth: appData[12],\n thumbHeight: appData[13],\n thumbData: appData.subarray(\n 14,\n 14 + 3 * appData[12] * appData[13]\n ),\n };\n }\n }\n // TODO APP1 - Exif\n if (fileMarker === 0xffee) {\n if (\n appData[0] === 0x41 &&\n appData[1] === 0x64 &&\n appData[2] === 0x6f &&\n appData[3] === 0x62 &&\n appData[4] === 0x65 &&\n appData[5] === 0\n ) {\n // 'Adobe\\x00'\n adobe = {\n version: appData[6],\n flags0: (appData[7] << 8) | appData[8],\n flags1: (appData[9] << 8) | appData[10],\n transformCode: appData[11],\n };\n }\n }\n break;\n\n case 0xffdb: // DQT (Define Quantization Tables)\n var quantizationTablesLength = readUint16();\n var quantizationTablesEnd = quantizationTablesLength + offset - 2;\n while (offset < quantizationTablesEnd) {\n var quantizationTableSpec = data[offset++];\n var tableData = new Int32Array(64);\n if (quantizationTableSpec >> 4 === 0) {\n // 8 bit values\n for (j = 0; j < 64; j++) {\n var z = dctZigZag[j];\n tableData[z] = data[offset++];\n }\n } else if (quantizationTableSpec >> 4 === 1) {\n //16 bit\n for (j = 0; j < 64; j++) {\n var zz = dctZigZag[j];\n tableData[zz] = readUint16();\n }\n } else throw 'DQT: invalid table spec';\n quantizationTables[quantizationTableSpec & 15] = tableData;\n }\n break;\n\n case 0xffc0: // SOF0 (Start of Frame, Baseline DCT)\n case 0xffc1: // SOF1 (Start of Frame, Extended DCT)\n case 0xffc2: // SOF2 (Start of Frame, Progressive DCT)\n if (frame) {\n throw 'Only single frame JPEGs supported';\n }\n readUint16(); // skip data length\n frame = {};\n frame.extended = fileMarker === 0xffc1;\n frame.progressive = fileMarker === 0xffc2;\n frame.precision = data[offset++];\n frame.scanLines = readUint16();\n frame.samplesPerLine = readUint16();\n frame.components = [];\n frame.componentIds = {};\n var componentsCount = data[offset++],\n componentId;\n var maxH = 0,\n maxV = 0;\n for (i = 0; i < componentsCount; i++) {\n componentId = data[offset];\n var h = data[offset + 1] >> 4;\n var v = data[offset + 1] & 15;\n if (maxH < h) maxH = h;\n if (maxV < v) maxV = v;\n var qId = data[offset + 2];\n l = frame.components.push({\n h: h,\n v: v,\n quantizationTable: quantizationTables[qId],\n quantizationTableId: qId,\n bitConversion: 255 / ((1 << frame.precision) - 1),\n });\n frame.componentIds[componentId] = l - 1;\n offset += 3;\n }\n frame.maxH = maxH;\n frame.maxV = maxV;\n prepareComponents(frame);\n break;\n\n case 0xffc4: // DHT (Define Huffman Tables)\n var huffmanLength = readUint16();\n for (i = 2; i < huffmanLength; ) {\n var huffmanTableSpec = data[offset++];\n var codeLengths = new Uint8Array(16);\n var codeLengthSum = 0;\n for (j = 0; j < 16; j++, offset++)\n codeLengthSum += codeLengths[j] = data[offset];\n var huffmanValues = new Uint8Array(codeLengthSum);\n for (j = 0; j < codeLengthSum; j++, offset++)\n huffmanValues[j] = data[offset];\n i += 17 + codeLengthSum;\n\n (huffmanTableSpec >> 4 === 0 ? huffmanTablesDC : huffmanTablesAC)[\n huffmanTableSpec & 15\n ] = buildHuffmanTable(codeLengths, huffmanValues);\n }\n break;\n\n case 0xffdd: // DRI (Define Restart Interval)\n readUint16(); // skip data length\n resetInterval = readUint16();\n break;\n\n case 0xffda: // SOS (Start of Scan)\n var scanLength = readUint16();\n var selectorsCount = data[offset++];\n var components = [],\n component;\n for (i = 0; i < selectorsCount; i++) {\n var componentIndex = frame.componentIds[data[offset++]];\n component = frame.components[componentIndex];\n var tableSpec = data[offset++];\n component.huffmanTableDC = huffmanTablesDC[tableSpec >> 4];\n component.huffmanTableAC = huffmanTablesAC[tableSpec & 15];\n components.push(component);\n }\n var spectralStart = data[offset++];\n var spectralEnd = data[offset++];\n var successiveApproximation = data[offset++];\n var processed = decodeScan(\n data,\n offset,\n frame,\n components,\n resetInterval,\n spectralStart,\n spectralEnd,\n successiveApproximation >> 4,\n successiveApproximation & 15\n );\n offset += processed;\n break;\n case 0xffff: // Fill bytes\n if (data[offset] !== 0xff) {\n // Avoid skipping a valid marker.\n offset--;\n }\n break;\n default:\n if (\n data[offset - 3] == 0xff &&\n data[offset - 2] >= 0xc0 &&\n data[offset - 2] <= 0xfe\n ) {\n // could be incorrect encoding -- last 0xFF byte of the previous\n // block was eaten by the encoder\n offset -= 3;\n break;\n }\n throw 'unknown JPEG marker ' + fileMarker.toString(16);\n }\n fileMarker = readUint16();\n }\n\n this.width = frame.samplesPerLine;\n this.height = frame.scanLines;\n this.jfif = jfif;\n this.adobe = adobe;\n this.components = [];\n switch (frame.components.length) {\n case 1:\n this.colorspace = ColorSpace.Grayscale;\n break;\n case 3:\n if (this.adobe) this.colorspace = ColorSpace.AdobeRGB;\n else this.colorspace = ColorSpace.RGB;\n break;\n case 4:\n this.colorspace = ColorSpace.CYMK;\n break;\n default:\n this.colorspace = ColorSpace.Unknown;\n }\n for (var i = 0; i < frame.components.length; i++) {\n var component = frame.components[i];\n if (\n !component.quantizationTable &&\n component.quantizationTableId !== null\n )\n component.quantizationTable =\n quantizationTables[component.quantizationTableId];\n this.components.push({\n output: buildComponentData(frame, component),\n scaleX: component.h / frame.maxH,\n scaleY: component.v / frame.maxV,\n blocksPerLine: component.blocksPerLine,\n blocksPerColumn: component.blocksPerColumn,\n bitConversion: component.bitConversion,\n });\n }\n },\n getData16: function getData16(width, height) {\n if (this.components.length !== 1) throw 'Unsupported color mode';\n var scaleX = this.width / width,\n scaleY = this.height / height;\n\n var component, componentScaleX, componentScaleY;\n var x, y, i;\n var offset = 0;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint16Array(dataLength);\n var componentLine;\n\n // lineData is reused for all components. Assume first component is\n // the biggest\n var lineData = new Uint16Array(\n (this.components[0].blocksPerLine << 3) *\n this.components[0].blocksPerColumn *\n 8\n );\n\n // First construct image data ...\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n\n var j,\n k,\n ll = 0;\n var lineOffset = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var bufferOffset = getBlockBufferOffset(\n component,\n blockRow,\n blockCol\n );\n var offset = 0,\n sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var lineOffset = (scanLine + j) * samplesPerLine;\n for (k = 0; k < 8; k++) {\n lineData[lineOffset + sample + k] =\n component.output[bufferOffset + offset++];\n }\n }\n }\n }\n\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n\n var cx, cy;\n var index;\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n cy = 0 | (y * componentScaleY);\n cx = 0 | (x * componentScaleX);\n index = cy * samplesPerLine + cx;\n data[offset] = lineData[index];\n offset += numComponents;\n }\n }\n }\n return data;\n },\n getData: function getData(width, height) {\n var scaleX = this.width / width,\n scaleY = this.height / height;\n\n var component, componentScaleX, componentScaleY;\n var x, y, i;\n var offset = 0;\n var Y, Cb, Cr, K, C, M, Ye, R, G, B;\n var colorTransform;\n var numComponents = this.components.length;\n var dataLength = width * height * numComponents;\n var data = new Uint8Array(dataLength);\n var componentLine;\n\n // lineData is reused for all components. Assume first component is\n // the biggest\n var lineData = new Uint8Array(\n (this.components[0].blocksPerLine << 3) *\n this.components[0].blocksPerColumn *\n 8\n );\n\n // First construct image data ...\n for (i = 0; i < numComponents; i++) {\n component = this.components[i];\n var blocksPerLine = component.blocksPerLine;\n var blocksPerColumn = component.blocksPerColumn;\n var samplesPerLine = blocksPerLine << 3;\n\n var j,\n k,\n ll = 0;\n var lineOffset = 0;\n for (var blockRow = 0; blockRow < blocksPerColumn; blockRow++) {\n var scanLine = blockRow << 3;\n for (var blockCol = 0; blockCol < blocksPerLine; blockCol++) {\n var bufferOffset = getBlockBufferOffset(\n component,\n blockRow,\n blockCol\n );\n var offset = 0,\n sample = blockCol << 3;\n for (j = 0; j < 8; j++) {\n var lineOffset = (scanLine + j) * samplesPerLine;\n for (k = 0; k < 8; k++) {\n lineData[lineOffset + sample + k] =\n component.output[bufferOffset + offset++] *\n component.bitConversion;\n }\n }\n }\n }\n\n componentScaleX = component.scaleX * scaleX;\n componentScaleY = component.scaleY * scaleY;\n offset = i;\n\n var cx, cy;\n var index;\n for (y = 0; y < height; y++) {\n for (x = 0; x < width; x++) {\n cy = 0 | (y * componentScaleY);\n cx = 0 | (x * componentScaleX);\n index = cy * samplesPerLine + cx;\n data[offset] = lineData[index];\n offset += numComponents;\n }\n }\n }\n\n // ... then transform colors, if necessary\n switch (numComponents) {\n case 1:\n case 2:\n break;\n // no color conversion for one or two compoenents\n\n case 3:\n // The default transform for three components is true\n colorTransform = true;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode) colorTransform = true;\n else if (typeof this.colorTransform !== 'undefined')\n colorTransform = !!this.colorTransform;\n\n if (colorTransform) {\n for (i = 0; i < dataLength; i += numComponents) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n\n R = clampToUint8(Y - 179.456 + 1.402 * Cr);\n G = clampToUint8(Y + 135.459 - 0.344 * Cb - 0.714 * Cr);\n B = clampToUint8(Y - 226.816 + 1.772 * Cb);\n\n data[i] = R;\n data[i + 1] = G;\n data[i + 2] = B;\n }\n }\n break;\n case 4:\n if (!this.adobe) throw 'Unsupported color mode (4 components)';\n // The default transform for four components is false\n colorTransform = false;\n // The adobe transform marker overrides any previous setting\n if (this.adobe && this.adobe.transformCode) colorTransform = true;\n else if (typeof this.colorTransform !== 'undefined')\n colorTransform = !!this.colorTransform;\n\n if (colorTransform) {\n for (i = 0; i < dataLength; i += numComponents) {\n Y = data[i];\n Cb = data[i + 1];\n Cr = data[i + 2];\n\n C = clampToUint8(434.456 - Y - 1.402 * Cr);\n M = clampToUint8(119.541 - Y + 0.344 * Cb + 0.714 * Cr);\n Y = clampToUint8(481.816 - Y - 1.772 * Cb);\n\n data[i] = C;\n data[i + 1] = M;\n data[i + 2] = Y;\n // K is unchanged\n }\n }\n break;\n default:\n throw 'Unsupported color mode';\n }\n return data;\n },\n });\n\n return JpegImage\n})();\n\n/*** EXPORTS FROM exports-loader ***/\nmodule.exports = {\n JpegImage\n};\n","/* eslint-disable */\n\n(function (f) {\n if (typeof exports === 'object' && typeof module !== 'undefined') {\n module.exports = f();\n } else if (typeof define === 'function' && define.amd) {\n define([], f);\n } else {\n var g;\n\n if (typeof window !== 'undefined') {\n g = window;\n } else if (typeof global !== 'undefined') {\n g = global;\n } else if (typeof self !== 'undefined') {\n g = self;\n } else {\n g = this;\n }\n g.jpeg = f();\n }\n})(function () {\n var define, module, exports;\n\n return (function e(t, n, r) {\n function s(o, u) {\n if (!n[o]) {\n if (!t[o]) {\n var a = typeof require === 'function' && require;\n\n if (!u && a) {\n return a(o, !0);\n }\n if (i) {\n return i(o, !0);\n }\n var f = new Error(\"Cannot find module '\" + o + \"'\");\n\n throw ((f.code = 'MODULE_NOT_FOUND'), f);\n }\n var l = (n[o] = { exports: {} });\n\n t[o][0].call(\n l.exports,\n function (e) {\n var n = t[o][1][e];\n\n return s(n ? n : e);\n },\n l,\n l.exports,\n e,\n t,\n n,\n r\n );\n }\n\n return n[o].exports;\n }\n var i = typeof require === 'function' && require;\n\n for (var o = 0; o < r.length; o++) {\n s(r[o]);\n }\n\n return s;\n })(\n {\n 1: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n\n /*** Constructor ***/\n jpeg.lossless.ComponentSpec =\n jpeg.lossless.ComponentSpec ||\n function () {\n this.hSamp = 0; // Horizontal sampling factor\n this.quantTableSel = 0; // Quantization table destination selector\n this.vSamp = 0; // Vertical\n };\n\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.ComponentSpec;\n }\n },\n {},\n ],\n 2: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n\n /*** Constructor ***/\n jpeg.lossless.DataStream =\n jpeg.lossless.DataStream ||\n function (data, offset, length) {\n // Note: DataView is much slower than Int8Array\n // this.buffer = new DataView(data, offset, length);\n this.buffer = new Uint8Array(data, offset, length);\n this.index = 0;\n };\n jpeg.lossless.DataStream.prototype.get16 = function () {\n // var value = this.buffer.getUint16(this.index, false);\n var value =\n (this.buffer[this.index] << 8) + this.buffer[this.index + 1]; // DataView is big-endian by default\n\n this.index += 2;\n\n return value;\n };\n jpeg.lossless.DataStream.prototype.get8 = function () {\n // var value = this.buffer.getUint8(this.index);\n var value = this.buffer[this.index];\n\n this.index += 1;\n\n return value;\n };\n\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.DataStream;\n }\n },\n {},\n ],\n 3: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n jpeg.lossless.DataStream =\n jpeg.lossless.DataStream ||\n (typeof require !== 'undefined'\n ? require('./data-stream.js')\n : null);\n jpeg.lossless.HuffmanTable =\n jpeg.lossless.HuffmanTable ||\n (typeof require !== 'undefined'\n ? require('./huffman-table.js')\n : null);\n jpeg.lossless.QuantizationTable =\n jpeg.lossless.QuantizationTable ||\n (typeof require !== 'undefined'\n ? require('./quantization-table.js')\n : null);\n jpeg.lossless.ScanHeader =\n jpeg.lossless.ScanHeader ||\n (typeof require !== 'undefined'\n ? require('./scan-header.js')\n : null);\n jpeg.lossless.FrameHeader =\n jpeg.lossless.FrameHeader ||\n (typeof require !== 'undefined'\n ? require('./frame-header.js')\n : null);\n jpeg.lossless.Utils =\n jpeg.lossless.Utils ||\n (typeof require !== 'undefined' ? require('./utils.js') : null);\n\n /*** Constructor ***/\n\n /**\n * The Decoder constructor.\n * @property {number} xDim - size of x dimension\n * @property {number} yDim - size of y dimension\n * @property {number} numComp - number of components\n * @property {number} numBytes - number of bytes per component\n * @type {Function}\n */\n jpeg.lossless.Decoder =\n jpeg.lossless.Decoder ||\n function (buffer, numBytes) {\n this.buffer = buffer;\n this.frame = new jpeg.lossless.FrameHeader();\n this.huffTable = new jpeg.lossless.HuffmanTable();\n this.quantTable = new jpeg.lossless.QuantizationTable();\n this.scan = new jpeg.lossless.ScanHeader();\n this.DU = jpeg.lossless.Utils.createArray(10, 4, 64); // at most 10 data units in a MCU, at most 4 data units in one component\n this.HuffTab = jpeg.lossless.Utils.createArray(4, 2, 50 * 256);\n this.IDCT_Source = [];\n this.nBlock = []; // number of blocks in the i-th Comp in a scan\n this.acTab = jpeg.lossless.Utils.createArray(10, 1); // ac HuffTab for the i-th Comp in a scan\n this.dcTab = jpeg.lossless.Utils.createArray(10, 1); // dc HuffTab for the i-th Comp in a scan\n this.qTab = jpeg.lossless.Utils.createArray(10, 1); // quantization table for the i-th Comp in a scan\n this.marker = 0;\n this.markerIndex = 0;\n this.numComp = 0;\n this.restartInterval = 0;\n this.selection = 0;\n this.xDim = 0;\n this.yDim = 0;\n this.xLoc = 0;\n this.yLoc = 0;\n this.numBytes = 0;\n this.outputData = null;\n this.restarting = false;\n this.mask = 0;\n\n if (typeof numBytes !== 'undefined') {\n this.numBytes = numBytes;\n }\n };\n\n /*** Static Pseudo-constants ***/\n\n jpeg.lossless.Decoder.IDCT_P = [\n 0, 5, 40, 16, 45, 2, 7, 42, 21, 56, 8, 61, 18, 47, 1, 4, 41, 23, 58,\n 13, 32, 24, 37, 10, 63, 17, 44, 3, 6, 43, 20, 57, 15, 34, 29, 48,\n 53, 26, 39, 9, 60, 19, 46, 22, 59, 12, 33, 31, 50, 55, 25, 36, 11,\n 62, 14, 35, 28, 49, 52, 27, 38, 30, 51, 54,\n ];\n jpeg.lossless.Decoder.TABLE = [\n 0, 1, 5, 6, 14, 15, 27, 28, 2, 4, 7, 13, 16, 26, 29, 42, 3, 8, 12,\n 17, 25, 30, 41, 43, 9, 11, 18, 24, 31, 40, 44, 53, 10, 19, 23, 32,\n 39, 45, 52, 54, 20, 22, 33, 38, 46, 51, 55, 60, 21, 34, 37, 47, 50,\n 56, 59, 61, 35, 36, 48, 49, 57, 58, 62, 63,\n ];\n jpeg.lossless.Decoder.MAX_HUFFMAN_SUBTREE = 50;\n jpeg.lossless.Decoder.MSB = 0x80000000;\n jpeg.lossless.Decoder.RESTART_MARKER_BEGIN = 0xffd0;\n jpeg.lossless.Decoder.RESTART_MARKER_END = 0xffd7;\n\n /*** Prototype Methods ***/\n\n /**\n * Returns decompressed data.\n * @param {ArrayBuffer} buffer\n * @param {number} [offset]\n * @param {number} [length]\n * @returns {ArrayBufer}\n */\n jpeg.lossless.Decoder.prototype.decompress = function (\n buffer,\n offset,\n length\n ) {\n return this.decode(buffer, offset, length).buffer;\n };\n jpeg.lossless.Decoder.prototype.decode = function (\n buffer,\n offset,\n length,\n numBytes\n ) {\n /*jslint bitwise: true */\n\n var current,\n scanNum = 0,\n pred = [],\n i,\n compN,\n temp = [],\n index = [],\n mcuNum;\n\n if (typeof buffer !== 'undefined') {\n this.buffer = buffer;\n }\n\n if (typeof numBytes !== 'undefined') {\n this.numBytes = numBytes;\n }\n\n this.stream = new jpeg.lossless.DataStream(\n this.buffer,\n offset,\n length\n );\n this.buffer = null;\n\n this.xLoc = 0;\n this.yLoc = 0;\n current = this.stream.get16();\n\n if (current !== 0xffd8) {\n // SOI\n throw new Error('Not a JPEG file');\n }\n\n current = this.stream.get16();\n\n while (current >> 4 !== 0x0ffc || current === 0xffc4) {\n // SOF 0~15\n switch (current) {\n case 0xffc4: // DHT\n this.huffTable.read(this.stream, this.HuffTab);\n break;\n case 0xffcc: // DAC\n throw new Error(\n \"Program doesn't support arithmetic coding. (format throw new IOException)\"\n );\n case 0xffdb:\n this.quantTable.read(\n this.stream,\n jpeg.lossless.Decoder.TABLE\n );\n break;\n case 0xffdd:\n this.restartInterval = this.readNumber();\n break;\n case 0xffe0:\n case 0xffe1:\n case 0xffe2:\n case 0xffe3:\n case 0xffe4:\n case 0xffe5:\n case 0xffe6:\n case 0xffe7:\n case 0xffe8:\n case 0xffe9:\n case 0xffea:\n case 0xffeb:\n case 0xffec:\n case 0xffed:\n case 0xffee:\n case 0xffef:\n this.readApp();\n break;\n case 0xfffe:\n this.readComment();\n break;\n default:\n if (current >> 8 !== 0xff) {\n throw new Error(\n 'ERROR: format throw new IOException! (decode)'\n );\n }\n }\n\n current = this.stream.get16();\n }\n\n if (current < 0xffc0 || current > 0xffc7) {\n throw new Error('ERROR: could not handle arithmetic code!');\n }\n\n this.frame.read(this.stream);\n current = this.stream.get16();\n\n do {\n while (current !== 0x0ffda) {\n // SOS\n switch (current) {\n case 0xffc4: // DHT\n this.huffTable.read(this.stream, this.HuffTab);\n break;\n case 0xffcc: // DAC\n throw new Error(\n \"Program doesn't support arithmetic coding. (format throw new IOException)\"\n );\n case 0xffdb:\n this.quantTable.read(\n this.stream,\n jpeg.lossless.Decoder.TABLE\n );\n break;\n case 0xffdd:\n this.restartInterval = this.readNumber();\n break;\n case 0xffe0:\n case 0xffe1:\n case 0xffe2:\n case 0xffe3:\n case 0xffe4:\n case 0xffe5:\n case 0xffe6:\n case 0xffe7:\n case 0xffe8:\n case 0xffe9:\n case 0xffea:\n case 0xffeb:\n case 0xffec:\n case 0xffed:\n case 0xffee:\n case 0xffef:\n this.readApp();\n break;\n case 0xfffe:\n this.readComment();\n break;\n default:\n if (current >> 8 !== 0xff) {\n throw new Error(\n 'ERROR: format throw new IOException! (Parser.decode)'\n );\n }\n }\n\n current = this.stream.get16();\n }\n\n this.precision = this.frame.precision;\n this.components = this.frame.components;\n\n if (!this.numBytes) {\n this.numBytes = parseInt(Math.ceil(this.precision / 8));\n }\n\n if (this.numBytes == 1) {\n this.mask = 0xff;\n } else {\n this.mask = 0xffff;\n }\n\n this.scan.read(this.stream);\n this.numComp = this.scan.numComp;\n this.selection = this.scan.selection;\n\n if (this.numBytes === 1) {\n if (this.numComp === 3) {\n this.getter = this.getValueRGB;\n this.setter = this.setValueRGB;\n this.output = this.outputRGB;\n } else {\n this.getter = this.getValue8;\n this.setter = this.setValue8;\n this.output = this.outputSingle;\n }\n } else {\n this.getter = this.getValue16;\n this.setter = this.setValue16;\n this.output = this.outputSingle;\n }\n\n switch (this.selection) {\n case 2:\n this.selector = this.select2;\n break;\n case 3:\n this.selector = this.select3;\n break;\n case 4:\n this.selector = this.select4;\n break;\n case 5:\n this.selector = this.select5;\n break;\n case 6:\n this.selector = this.select6;\n break;\n case 7:\n this.selector = this.select7;\n break;\n default:\n this.selector = this.select1;\n break;\n }\n\n this.scanComps = this.scan.components;\n this.quantTables = this.quantTable.quantTables;\n\n for (i = 0; i < this.numComp; i += 1) {\n compN = this.scanComps[i].scanCompSel;\n this.qTab[i] =\n this.quantTables[this.components[compN].quantTableSel];\n this.nBlock[i] =\n this.components[compN].vSamp * this.components[compN].hSamp;\n this.dcTab[i] = this.HuffTab[this.scanComps[i].dcTabSel][0];\n this.acTab[i] = this.HuffTab[this.scanComps[i].acTabSel][1];\n }\n\n this.xDim = this.frame.dimX;\n this.yDim = this.frame.dimY;\n if (this.numBytes == 1) {\n this.outputData = new Uint8Array(\n new ArrayBuffer(\n this.xDim * this.yDim * this.numBytes * this.numComp\n )\n );\n } else {\n this.outputData = new Uint16Array(\n new ArrayBuffer(\n this.xDim * this.yDim * this.numBytes * this.numComp\n )\n );\n }\n\n scanNum += 1;\n\n while (true) {\n // Decode one scan\n temp[0] = 0;\n index[0] = 0;\n\n for (i = 0; i < 10; i += 1) {\n pred[i] = 1 << (this.precision - 1);\n }\n\n if (this.restartInterval === 0) {\n current = this.decodeUnit(pred, temp, index);\n\n while (\n current === 0 &&\n this.xLoc < this.xDim &&\n this.yLoc < this.yDim\n ) {\n this.output(pred);\n current = this.decodeUnit(pred, temp, index);\n }\n\n break; //current=MARKER\n }\n\n for (mcuNum = 0; mcuNum < this.restartInterval; mcuNum += 1) {\n this.restarting = mcuNum == 0;\n current = this.decodeUnit(pred, temp, index);\n this.output(pred);\n\n if (current !== 0) {\n break;\n }\n }\n\n if (current === 0) {\n if (this.markerIndex !== 0) {\n current = 0xff00 | this.marker;\n this.markerIndex = 0;\n } else {\n current = this.stream.get16();\n }\n }\n\n if (\n !(\n current >= jpeg.lossless.Decoder.RESTART_MARKER_BEGIN &&\n current <= jpeg.lossless.Decoder.RESTART_MARKER_END\n )\n ) {\n break; //current=MARKER\n }\n }\n\n if (current === 0xffdc && scanNum === 1) {\n //DNL\n this.readNumber();\n current = this.stream.get16();\n }\n } while (\n current !== 0xffd9 &&\n this.xLoc < this.xDim &&\n this.yLoc < this.yDim &&\n scanNum === 0\n );\n\n return this.outputData;\n };\n jpeg.lossless.Decoder.prototype.decodeUnit = function (\n prev,\n temp,\n index\n ) {\n if (this.numComp == 1) {\n return this.decodeSingle(prev, temp, index);\n } else if (this.numComp == 3) {\n return this.decodeRGB(prev, temp, index);\n }\n\n return -1;\n };\n jpeg.lossless.Decoder.prototype.select1 = function (compOffset) {\n return this.getPreviousX(compOffset);\n };\n jpeg.lossless.Decoder.prototype.select2 = function (compOffset) {\n return this.getPreviousY(compOffset);\n };\n jpeg.lossless.Decoder.prototype.select3 = function (compOffset) {\n return this.getPreviousXY(compOffset);\n };\n jpeg.lossless.Decoder.prototype.select4 = function (compOffset) {\n return (\n this.getPreviousX(compOffset) +\n this.getPreviousY(compOffset) -\n this.getPreviousXY(compOffset)\n );\n };\n jpeg.lossless.Decoder.prototype.select5 = function (compOffset) {\n return (\n this.getPreviousX(compOffset) +\n ((this.getPreviousY(compOffset) -\n this.getPreviousXY(compOffset)) >>\n 1)\n );\n };\n jpeg.lossless.Decoder.prototype.select6 = function (compOffset) {\n return (\n this.getPreviousY(compOffset) +\n ((this.getPreviousX(compOffset) -\n this.getPreviousXY(compOffset)) >>\n 1)\n );\n };\n jpeg.lossless.Decoder.prototype.select7 = function (compOffset) {\n return (\n (this.getPreviousX(compOffset) + this.getPreviousY(compOffset)) /\n 2\n );\n };\n jpeg.lossless.Decoder.prototype.decodeRGB = function (\n prev,\n temp,\n index\n ) {\n /*jslint bitwise: true */\n\n var value, actab, dctab, qtab, ctrC, i, k, j;\n\n prev[0] = this.selector(0);\n prev[1] = this.selector(1);\n prev[2] = this.selector(2);\n\n for (ctrC = 0; ctrC < this.numComp; ctrC += 1) {\n qtab = this.qTab[ctrC];\n actab = this.acTab[ctrC];\n dctab = this.dcTab[ctrC];\n for (i = 0; i < this.nBlock[ctrC]; i += 1) {\n for (k = 0; k < this.IDCT_Source.length; k += 1) {\n this.IDCT_Source[k] = 0;\n }\n\n value = this.getHuffmanValue(dctab, temp, index);\n\n if (value >= 0xff00) {\n return value;\n }\n\n prev[ctrC] = this.IDCT_Source[0] =\n prev[ctrC] + this.getn(index, value, temp, index);\n this.IDCT_Source[0] *= qtab[0];\n\n for (j = 1; j < 64; j += 1) {\n value = this.getHuffmanValue(actab, temp, index);\n\n if (value >= 0xff00) {\n return value;\n }\n\n j += value >> 4;\n\n if ((value & 0x0f) === 0) {\n if (value >> 4 === 0) {\n break;\n }\n } else {\n this.IDCT_Source[jpeg.lossless.Decoder.IDCT_P[j]] =\n this.getn(index, value & 0x0f, temp, index) * qtab[j];\n }\n }\n }\n }\n\n return 0;\n };\n jpeg.lossless.Decoder.prototype.decodeSingle = function (\n prev,\n temp,\n index\n ) {\n /*jslint bitwise: true */\n\n var value, i, n, nRestart;\n\n if (this.restarting) {\n this.restarting = false;\n prev[0] = 1 << (this.frame.precision - 1);\n } else {\n prev[0] = this.selector();\n }\n\n for (i = 0; i < this.nBlock[0]; i += 1) {\n value = this.getHuffmanValue(this.dcTab[0], temp, index);\n if (value >= 0xff00) {\n return value;\n }\n\n n = this.getn(prev, value, temp, index);\n nRestart = n >> 8;\n\n if (\n nRestart >= jpeg.lossless.Decoder.RESTART_MARKER_BEGIN &&\n nRestart <= jpeg.lossless.Decoder.RESTART_MARKER_END\n ) {\n return nRestart;\n }\n\n prev[0] += n;\n }\n\n return 0;\n };\n // Huffman table for fast search: (HuffTab) 8-bit Look up table 2-layer search architecture, 1st-layer represent 256 node (8 bits) if codeword-length > 8\n // bits, then the entry of 1st-layer = (# of 2nd-layer table) | MSB and it is stored in the 2nd-layer Size of tables in each layer are 256.\n // HuffTab[*][*][0-256] is always the only 1st-layer table.\n //\n // An entry can be: (1) (# of 2nd-layer table) | MSB , for code length > 8 in 1st-layer (2) (Code length) << 8 | HuffVal\n //\n // HuffmanValue(table HuffTab[x][y] (ex) HuffmanValue(HuffTab[1][0],...)\n // ):\n // return: Huffman Value of table\n // 0xFF?? if it receives a MARKER\n // Parameter: table HuffTab[x][y] (ex) HuffmanValue(HuffTab[1][0],...)\n // temp temp storage for remainded bits\n // index index to bit of temp\n // in FILE pointer\n // Effect:\n // temp store new remainded bits\n // index change to new index\n // in change to new position\n // NOTE:\n // Initial by temp=0; index=0;\n // NOTE: (explain temp and index)\n // temp: is always in the form at calling time or returning time\n // | byte 4 | byte 3 | byte 2 | byte 1 |\n // | 0 | 0 | 00000000 | 00000??? | if not a MARKER\n // ^index=3 (from 0 to 15)\n // 321\n // NOTE (marker and marker_index):\n // If get a MARKER from 'in', marker=the low-byte of the MARKER\n // and marker_index=9\n // If marker_index=9 then index is always > 8, or HuffmanValue()\n // will not be called\n jpeg.lossless.Decoder.prototype.getHuffmanValue = function (\n table,\n temp,\n index\n ) {\n /*jslint bitwise: true */\n\n var code, input, mask;\n\n mask = 0xffff;\n\n if (index[0] < 8) {\n temp[0] <<= 8;\n input = this.stream.get8();\n if (input === 0xff) {\n this.marker = this.stream.get8();\n if (this.marker !== 0) {\n this.markerIndex = 9;\n }\n }\n temp[0] |= input;\n } else {\n index[0] -= 8;\n }\n\n code = table[temp[0] >> index[0]];\n\n if ((code & jpeg.lossless.Decoder.MSB) !== 0) {\n if (this.markerIndex !== 0) {\n this.markerIndex = 0;\n\n return 0xff00 | this.marker;\n }\n\n temp[0] &= mask >> (16 - index[0]);\n temp[0] <<= 8;\n input = this.stream.get8();\n\n if (input === 0xff) {\n this.marker = this.stream.get8();\n if (this.marker !== 0) {\n this.markerIndex = 9;\n }\n }\n\n temp[0] |= input;\n code = table[(code & 0xff) * 256 + (temp[0] >> index[0])];\n index[0] += 8;\n }\n\n index[0] += 8 - (code >> 8);\n\n if (index[0] < 0) {\n throw new Error(\n `index=${index[0]} temp=${temp[0]} code=${code} in HuffmanValue()`\n );\n }\n\n if (index[0] < this.markerIndex) {\n this.markerIndex = 0;\n\n return 0xff00 | this.marker;\n }\n\n temp[0] &= mask >> (16 - index[0]);\n\n return code & 0xff;\n };\n jpeg.lossless.Decoder.prototype.getn = function (\n PRED,\n n,\n temp,\n index\n ) {\n /*jslint bitwise: true */\n\n var result, one, n_one, mask, input;\n\n one = 1;\n n_one = -1;\n mask = 0xffff;\n\n if (n === 0) {\n return 0;\n }\n\n if (n === 16) {\n if (PRED[0] >= 0) {\n return -32768;\n }\n\n return 32768;\n }\n\n index[0] -= n;\n\n if (index[0] >= 0) {\n if (index[0] < this.markerIndex && !this.isLastPixel()) {\n // this was corrupting the last pixel in some cases\n this.markerIndex = 0;\n\n return (0xff00 | this.marker) << 8;\n }\n\n result = temp[0] >> index[0];\n temp[0] &= mask >> (16 - index[0]);\n } else {\n temp[0] <<= 8;\n input = this.stream.get8();\n\n if (input === 0xff) {\n this.marker = this.stream.get8();\n if (this.marker !== 0) {\n this.markerIndex = 9;\n }\n }\n\n temp[0] |= input;\n index[0] += 8;\n\n if (index[0] < 0) {\n if (this.markerIndex !== 0) {\n this.markerIndex = 0;\n\n return (0xff00 | this.marker) << 8;\n }\n\n temp[0] <<= 8;\n input = this.stream.get8();\n\n if (input === 0xff) {\n this.marker = this.stream.get8();\n if (this.marker !== 0) {\n this.markerIndex = 9;\n }\n }\n\n temp[0] |= input;\n index[0] += 8;\n }\n\n if (index[0] < 0) {\n throw new Error(`index=${index[0]} in getn()`);\n }\n\n if (index[0] < this.markerIndex) {\n this.markerIndex = 0;\n\n return (0xff00 | this.marker) << 8;\n }\n\n result = temp[0] >> index[0];\n temp[0] &= mask >> (16 - index[0]);\n }\n\n if (result < one << (n - 1)) {\n result += (n_one << n) + 1;\n }\n\n return result;\n };\n jpeg.lossless.Decoder.prototype.getPreviousX = function (compOffset) {\n /*jslint bitwise: true */\n\n if (this.xLoc > 0) {\n return this.getter(\n this.yLoc * this.xDim + this.xLoc - 1,\n compOffset\n );\n } else if (this.yLoc > 0) {\n return this.getPreviousY(compOffset);\n }\n\n return 1 << (this.frame.precision - 1);\n };\n\n jpeg.lossless.Decoder.prototype.getPreviousXY = function (\n compOffset\n ) {\n /*jslint bitwise: true */\n\n if (this.xLoc > 0 && this.yLoc > 0) {\n return this.getter(\n (this.yLoc - 1) * this.xDim + this.xLoc - 1,\n compOffset\n );\n }\n\n return this.getPreviousY(compOffset);\n };\n jpeg.lossless.Decoder.prototype.getPreviousY = function (compOffset) {\n /*jslint bitwise: true */\n\n if (this.yLoc > 0) {\n return this.getter(\n (this.yLoc - 1) * this.xDim + this.xLoc,\n compOffset\n );\n }\n\n return this.getPreviousX(compOffset);\n };\n jpeg.lossless.Decoder.prototype.isLastPixel = function () {\n return this.xLoc === this.xDim - 1 && this.yLoc === this.yDim - 1;\n };\n jpeg.lossless.Decoder.prototype.outputSingle = function (PRED) {\n if (this.xLoc < this.xDim && this.yLoc < this.yDim) {\n this.setter(\n this.yLoc * this.xDim + this.xLoc,\n this.mask & PRED[0]\n );\n\n this.xLoc += 1;\n\n if (this.xLoc >= this.xDim) {\n this.yLoc += 1;\n this.xLoc = 0;\n }\n }\n };\n jpeg.lossless.Decoder.prototype.outputRGB = function (PRED) {\n var offset = this.yLoc * this.xDim + this.xLoc;\n\n if (this.xLoc < this.xDim && this.yLoc < this.yDim) {\n this.setter(offset, PRED[0], 0);\n this.setter(offset, PRED[1], 1);\n this.setter(offset, PRED[2], 2);\n\n this.xLoc += 1;\n\n if (this.xLoc >= this.xDim) {\n this.yLoc += 1;\n this.xLoc = 0;\n }\n }\n };\n\n jpeg.lossless.Decoder.prototype.setValue8 = function (index, val) {\n this.outputData[index] = val;\n };\n\n jpeg.lossless.Decoder.prototype.getValue8 = function (index) {\n return this.outputData[index]; // mask should not be necessary because outputData is either Int8Array or Int16Array\n };\n\n var littleEndian = (function () {\n var buffer = new ArrayBuffer(2);\n\n new DataView(buffer).setInt16(0, 256, true /* littleEndian */);\n // Int16Array uses the platform's endianness.\n return new Int16Array(buffer)[0] === 256;\n })();\n\n if (littleEndian) {\n // just reading from an array is fine then. Int16Array will use platform endianness.\n jpeg.lossless.Decoder.prototype.setValue16 =\n jpeg.lossless.Decoder.prototype.setValue8;\n jpeg.lossless.Decoder.prototype.getValue16 =\n jpeg.lossless.Decoder.prototype.getValue8;\n } else {\n // If platform is big-endian, we will need to convert to little-endian\n jpeg.lossless.Decoder.prototype.setValue16 = function (index, val) {\n this.outputData[index] =\n ((val & 0xff) << 8) | ((val >> 8) & 0xff);\n };\n\n jpeg.lossless.Decoder.prototype.getValue16 = function (index) {\n var val = this.outputData[index];\n\n return ((val & 0xff) << 8) | ((val >> 8) & 0xff);\n };\n }\n\n jpeg.lossless.Decoder.prototype.setValueRGB = function (\n index,\n val,\n compOffset\n ) {\n // this.outputData.setUint8(index * 3 + compOffset, val);\n this.outputData[index * 3 + compOffset] = val;\n };\n\n jpeg.lossless.Decoder.prototype.getValueRGB = function (\n index,\n compOffset\n ) {\n // return this.outputData.getUint8(index * 3 + compOffset);\n return this.outputData[index * 3 + compOffset];\n };\n jpeg.lossless.Decoder.prototype.readApp = function () {\n var count = 0,\n length = this.stream.get16();\n\n count += 2;\n\n while (count < length) {\n this.stream.get8();\n count += 1;\n }\n\n return length;\n };\n jpeg.lossless.Decoder.prototype.readComment = function () {\n var sb = '',\n count = 0,\n length;\n\n length = this.stream.get16();\n count += 2;\n\n while (count < length) {\n sb += this.stream.get8();\n count += 1;\n }\n\n return sb;\n };\n jpeg.lossless.Decoder.prototype.readNumber = function () {\n var Ld = this.stream.get16();\n\n if (Ld !== 4) {\n throw new Error(\n 'ERROR: Define number format throw new IOException [Ld!=4]'\n );\n }\n\n return this.stream.get16();\n };\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.Decoder;\n }\n },\n {\n './data-stream.js': 2,\n './frame-header.js': 4,\n './huffman-table.js': 5,\n './quantization-table.js': 7,\n './scan-header.js': 9,\n './utils.js': 10,\n },\n ],\n 4: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n jpeg.lossless.ComponentSpec =\n jpeg.lossless.ComponentSpec ||\n (typeof require !== 'undefined'\n ? require('./component-spec.js')\n : null);\n jpeg.lossless.DataStream =\n jpeg.lossless.DataStream ||\n (typeof require !== 'undefined'\n ? require('./data-stream.js')\n : null);\n\n /*** Constructor ***/\n jpeg.lossless.FrameHeader =\n jpeg.lossless.FrameHeader ||\n function () {\n this.components = []; // Components\n this.dimX = 0; // Number of samples per line\n this.dimY = 0; // Number of lines\n this.numComp = 0; // Number of component in the frame\n this.precision = 0; // Sample Precision (from the original image)\n };\n /*** Prototype Methods ***/\n\n jpeg.lossless.FrameHeader.prototype.read = function (data) {\n /*jslint bitwise: true */\n\n var count = 0,\n length,\n i,\n c,\n temp;\n\n length = data.get16();\n count += 2;\n\n this.precision = data.get8();\n count += 1;\n\n this.dimY = data.get16();\n count += 2;\n\n this.dimX = data.get16();\n count += 2;\n\n this.numComp = data.get8();\n count += 1;\n for (i = 1; i <= this.numComp; i += 1) {\n if (count > length) {\n throw new Error('ERROR: frame format error');\n }\n\n c = data.get8();\n count += 1;\n\n if (count >= length) {\n throw new Error('ERROR: frame format error [c>=Lf]');\n }\n\n temp = data.get8();\n count += 1;\n\n if (!this.components[c]) {\n this.components[c] = new jpeg.lossless.ComponentSpec();\n }\n\n this.components[c].hSamp = temp >> 4;\n this.components[c].vSamp = temp & 0x0f;\n this.components[c].quantTableSel = data.get8();\n count += 1;\n }\n\n if (count !== length) {\n throw new Error('ERROR: frame format error [Lf!=count]');\n }\n\n return 1;\n };\n\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.FrameHeader;\n }\n },\n { './component-spec.js': 1, './data-stream.js': 2 },\n ],\n 5: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n jpeg.lossless.DataStream =\n jpeg.lossless.DataStream ||\n (typeof require !== 'undefined'\n ? require('./data-stream.js')\n : null);\n jpeg.lossless.Utils =\n jpeg.lossless.Utils ||\n (typeof require !== 'undefined' ? require('./utils.js') : null);\n\n /*** Constructor ***/\n jpeg.lossless.HuffmanTable =\n jpeg.lossless.HuffmanTable ||\n function () {\n this.l = jpeg.lossless.Utils.createArray(4, 2, 16);\n this.th = [];\n this.v = jpeg.lossless.Utils.createArray(4, 2, 16, 200);\n this.tc = jpeg.lossless.Utils.createArray(4, 2);\n\n this.tc[0][0] = 0;\n this.tc[1][0] = 0;\n this.tc[2][0] = 0;\n this.tc[3][0] = 0;\n this.tc[0][1] = 0;\n this.tc[1][1] = 0;\n this.tc[2][1] = 0;\n this.tc[3][1] = 0;\n this.th[0] = 0;\n this.th[1] = 0;\n this.th[2] = 0;\n this.th[3] = 0;\n };\n /*** Static Pseudo-constants ***/\n\n jpeg.lossless.HuffmanTable.MSB = 0x80000000;\n\n /*** Prototype Methods ***/\n\n jpeg.lossless.HuffmanTable.prototype.read = function (data, HuffTab) {\n /*jslint bitwise: true */\n\n var count = 0,\n length,\n temp,\n t,\n c,\n i,\n j;\n\n length = data.get16();\n count += 2;\n\n while (count < length) {\n temp = data.get8();\n count += 1;\n t = temp & 0x0f;\n if (t > 3) {\n throw new Error('ERROR: Huffman table ID > 3');\n }\n\n c = temp >> 4;\n if (c > 2) {\n throw new Error('ERROR: Huffman table [Table class > 2 ]');\n }\n\n this.th[t] = 1;\n this.tc[t][c] = 1;\n\n for (i = 0; i < 16; i += 1) {\n this.l[t][c][i] = data.get8();\n count += 1;\n }\n\n for (i = 0; i < 16; i += 1) {\n for (j = 0; j < this.l[t][c][i]; j += 1) {\n if (count > length) {\n throw new Error(\n 'ERROR: Huffman table format error [count>Lh]'\n );\n }\n\n this.v[t][c][i][j] = data.get8();\n count += 1;\n }\n }\n }\n\n if (count !== length) {\n throw new Error('ERROR: Huffman table format error [count!=Lf]');\n }\n\n for (i = 0; i < 4; i += 1) {\n for (j = 0; j < 2; j += 1) {\n if (this.tc[i][j] !== 0) {\n this.buildHuffTable(\n HuffTab[i][j],\n this.l[i][j],\n this.v[i][j]\n );\n }\n }\n }\n\n return 1;\n };\n // Build_HuffTab()\n // Parameter: t table ID\n // c table class ( 0 for DC, 1 for AC )\n // L[i] # of codewords which length is i\n // V[i][j] Huffman Value (length=i)\n // Effect:\n // build up HuffTab[t][c] using L and V.\n jpeg.lossless.HuffmanTable.prototype.buildHuffTable = function (\n tab,\n L,\n V\n ) {\n /*jslint bitwise: true */\n\n var currentTable, temp, k, i, j, n;\n\n temp = 256;\n k = 0;\n\n for (i = 0; i < 8; i += 1) {\n // i+1 is Code length\n for (j = 0; j < L[i]; j += 1) {\n for (n = 0; n < temp >> (i + 1); n += 1) {\n tab[k] = V[i][j] | ((i + 1) << 8);\n k += 1;\n }\n }\n }\n\n for (i = 1; k < 256; i += 1, k += 1) {\n tab[k] = i | jpeg.lossless.HuffmanTable.MSB;\n }\n\n currentTable = 1;\n k = 0;\n\n for (i = 8; i < 16; i += 1) {\n // i+1 is Code length\n for (j = 0; j < L[i]; j += 1) {\n for (n = 0; n < temp >> (i - 7); n += 1) {\n tab[currentTable * 256 + k] = V[i][j] | ((i + 1) << 8);\n k += 1;\n }\n\n if (k >= 256) {\n if (k > 256) {\n throw new Error('ERROR: Huffman table error(1)!');\n }\n\n k = 0;\n currentTable += 1;\n }\n }\n }\n };\n\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.HuffmanTable;\n }\n },\n { './data-stream.js': 2, './utils.js': 10 },\n ],\n 6: [\n function (require, module, exports) {\n /*jslint browser: true, node: true */\n /*global require, module */\n\n /*** Imports ****/\n\n /**\n * jpeg\n * @type {*|{}}\n */\n var jpeg = jpeg || {};\n\n /**\n * jpeg.lossless\n * @type {*|{}}\n */\n jpeg.lossless = jpeg.lossless || {};\n\n jpeg.lossless.ComponentSpec =\n jpeg.lossless.ComponentSpec ||\n (typeof require !== 'undefined'\n ? require('./component-spec.js')\n : null);\n jpeg.lossless.DataStream =\n jpeg.lossless.DataStream ||\n (typeof require !== 'undefined'\n ? require('./data-stream.js')\n : null);\n jpeg.lossless.Decoder =\n jpeg.lossless.Decoder ||\n (typeof require !== 'undefined' ? require('./decoder.js') : null);\n jpeg.lossless.FrameHeader =\n jpeg.lossless.FrameHeader ||\n (typeof require !== 'undefined'\n ? require('./frame-header.js')\n : null);\n jpeg.lossless.HuffmanTable =\n jpeg.lossless.HuffmanTable ||\n (typeof require !== 'undefined'\n ? require('./huffman-table.js')\n : null);\n jpeg.lossless.QuantizationTable =\n jpeg.lossless.QuantizationTable ||\n (typeof require !== 'undefined'\n ? require('./quantization-table.js')\n : null);\n jpeg.lossless.ScanComponent =\n jpeg.lossless.ScanComponent ||\n (typeof require !== 'undefined'\n ? require('./scan-component.js')\n : null);\n jpeg.lossless.ScanHeader =\n jpeg.lossless.ScanHeader ||\n (typeof require !== 'undefined'\n ? require('./scan-header.js')\n : null);\n jpeg.lossless.Utils =\n jpeg.lossless.Utils ||\n (typeof require !== 'undefined' ? require('./utils.js') : null);\n\n /*** Exports ***/\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg;\n }\n },\n {\n './component-spec.js': 1,\n './data-stream.js': 2,\n './decoder.js': 3,\n './frame-header.js': 4,\n './huffman-table.js': 5,\n './quantization-table.js': 7,\n './scan-component.js': 8,\n './scan-header.js': 9,\n './utils.js': 10,\n },\n ],\n 7: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n jpeg.lossless.DataStream =\n jpeg.lossless.DataStream ||\n (typeof require !== 'undefined'\n ? require('./data-stream.js')\n : null);\n jpeg.lossless.Utils =\n jpeg.lossless.Utils ||\n (typeof require !== 'undefined' ? require('./utils.js') : null);\n\n /*** Constructor ***/\n jpeg.lossless.QuantizationTable =\n jpeg.lossless.QuantizationTable ||\n function () {\n this.precision = []; // Quantization precision 8 or 16\n this.tq = []; // 1: this table is presented\n this.quantTables = jpeg.lossless.Utils.createArray(4, 64); // Tables\n\n this.tq[0] = 0;\n this.tq[1] = 0;\n this.tq[2] = 0;\n this.tq[3] = 0;\n };\n /*** Static Methods ***/\n\n jpeg.lossless.QuantizationTable.enhanceQuantizationTable = function (\n qtab,\n table\n ) {\n /*jslint bitwise: true */\n\n var i;\n\n for (i = 0; i < 8; i += 1) {\n qtab[table[0 * 8 + i]] *= 90;\n qtab[table[4 * 8 + i]] *= 90;\n qtab[table[2 * 8 + i]] *= 118;\n qtab[table[6 * 8 + i]] *= 49;\n qtab[table[5 * 8 + i]] *= 71;\n qtab[table[1 * 8 + i]] *= 126;\n qtab[table[7 * 8 + i]] *= 25;\n qtab[table[3 * 8 + i]] *= 106;\n }\n\n for (i = 0; i < 8; i += 1) {\n qtab[table[0 + 8 * i]] *= 90;\n qtab[table[4 + 8 * i]] *= 90;\n qtab[table[2 + 8 * i]] *= 118;\n qtab[table[6 + 8 * i]] *= 49;\n qtab[table[5 + 8 * i]] *= 71;\n qtab[table[1 + 8 * i]] *= 126;\n qtab[table[7 + 8 * i]] *= 25;\n qtab[table[3 + 8 * i]] *= 106;\n }\n\n for (i = 0; i < 64; i += 1) {\n qtab[i] >>= 6;\n }\n };\n\n /*** Prototype Methods ***/\n\n jpeg.lossless.QuantizationTable.prototype.read = function (\n data,\n table\n ) {\n /*jslint bitwise: true */\n\n var count = 0,\n length,\n temp,\n t,\n i;\n\n length = data.get16();\n count += 2;\n\n while (count < length) {\n temp = data.get8();\n count += 1;\n t = temp & 0x0f;\n\n if (t > 3) {\n throw new Error('ERROR: Quantization table ID > 3');\n }\n\n this.precision[t] = temp >> 4;\n\n if (this.precision[t] === 0) {\n this.precision[t] = 8;\n } else if (this.precision[t] === 1) {\n this.precision[t] = 16;\n } else {\n throw new Error('ERROR: Quantization table precision error');\n }\n\n this.tq[t] = 1;\n\n if (this.precision[t] === 8) {\n for (i = 0; i < 64; i += 1) {\n if (count > length) {\n throw new Error('ERROR: Quantization table format error');\n }\n\n this.quantTables[t][i] = data.get8();\n count += 1;\n }\n\n jpeg.lossless.QuantizationTable.enhanceQuantizationTable(\n this.quantTables[t],\n table\n );\n } else {\n for (i = 0; i < 64; i += 1) {\n if (count > length) {\n throw new Error('ERROR: Quantization table format error');\n }\n\n this.quantTables[t][i] = data.get16();\n count += 2;\n }\n\n jpeg.lossless.QuantizationTable.enhanceQuantizationTable(\n this.quantTables[t],\n table\n );\n }\n }\n\n if (count !== length) {\n throw new Error('ERROR: Quantization table error [count!=Lq]');\n }\n\n return 1;\n };\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.QuantizationTable;\n }\n },\n { './data-stream.js': 2, './utils.js': 10 },\n ],\n 8: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n\n /*** Constructor ***/\n jpeg.lossless.ScanComponent =\n jpeg.lossless.ScanComponent ||\n function () {\n this.acTabSel = 0; // AC table selector\n this.dcTabSel = 0; // DC table selector\n this.scanCompSel = 0; // Scan component selector\n };\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.ScanComponent;\n }\n },\n {},\n ],\n 9: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n jpeg.lossless.DataStream =\n jpeg.lossless.DataStream ||\n (typeof require !== 'undefined'\n ? require('./data-stream.js')\n : null);\n jpeg.lossless.ScanComponent =\n jpeg.lossless.ScanComponent ||\n (typeof require !== 'undefined'\n ? require('./scan-component.js')\n : null);\n\n /*** Constructor ***/\n jpeg.lossless.ScanHeader =\n jpeg.lossless.ScanHeader ||\n function () {\n this.ah = 0;\n this.al = 0;\n this.numComp = 0; // Number of components in the scan\n this.selection = 0; // Start of spectral or predictor selection\n this.spectralEnd = 0; // End of spectral selection\n this.components = [];\n };\n\n /*** Prototype Methods ***/\n\n jpeg.lossless.ScanHeader.prototype.read = function (data) {\n /*jslint bitwise: true */\n\n var count = 0,\n length,\n i,\n temp;\n\n length = data.get16();\n count += 2;\n\n this.numComp = data.get8();\n count += 1;\n\n for (i = 0; i < this.numComp; i += 1) {\n this.components[i] = new jpeg.lossless.ScanComponent();\n\n if (count > length) {\n throw new Error('ERROR: scan header format error');\n }\n\n this.components[i].scanCompSel = data.get8();\n count += 1;\n\n temp = data.get8();\n count += 1;\n\n this.components[i].dcTabSel = temp >> 4;\n this.components[i].acTabSel = temp & 0x0f;\n }\n\n this.selection = data.get8();\n count += 1;\n\n this.spectralEnd = data.get8();\n count += 1;\n\n temp = data.get8();\n this.ah = temp >> 4;\n this.al = temp & 0x0f;\n count += 1;\n\n if (count !== length) {\n throw new Error('ERROR: scan header format error [count!=Ns]');\n }\n\n return 1;\n };\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.ScanHeader;\n }\n },\n { './data-stream.js': 2, './scan-component.js': 8 },\n ],\n 10: [\n function (require, module, exports) {\n /*\n * Copyright (C) 2015 Michael Martinez\n * Changes: Added support for selection values 2-7, fixed minor bugs &\n * warnings, split into multiple class files, and general clean up.\n *\n * 08-25-2015: Helmut Dersch agreed to a license change from LGPL to MIT.\n */\n\n /*\n * Copyright (C) Helmut Dersch\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 /*jslint browser: true, node: true */\n /*global require, module */\n /*** Imports ***/\n var jpeg = jpeg || {};\n\n jpeg.lossless = jpeg.lossless || {};\n\n /*** Constructor ***/\n jpeg.lossless.Utils = jpeg.lossless.Utils || {};\n\n /*** Static methods ***/\n\n // http://stackoverflow.com/questions/966225/how-can-i-create-a-two-dimensional-array-in-javascript\n jpeg.lossless.Utils.createArray = function (length) {\n var arr = new Array(length || 0),\n i = length;\n\n if (arguments.length > 1) {\n var args = Array.prototype.slice.call(arguments, 1);\n\n while (i--) {\n arr[length - 1 - i] = jpeg.lossless.Utils.createArray.apply(\n this,\n args\n );\n }\n }\n\n return arr;\n };\n\n // http://stackoverflow.com/questions/18638900/javascript-crc32\n jpeg.lossless.Utils.makeCRCTable = function () {\n var c;\n var crcTable = [];\n\n for (var n = 0; n < 256; n++) {\n c = n;\n for (var k = 0; k < 8; k++) {\n c = c & 1 ? 0xedb88320 ^ (c >>> 1) : c >>> 1;\n }\n crcTable[n] = c;\n }\n\n return crcTable;\n };\n\n jpeg.lossless.Utils.crc32 = function (dataView) {\n var uint8view = new Uint8Array(dataView.buffer);\n var crcTable =\n jpeg.lossless.Utils.crcTable ||\n (jpeg.lossless.Utils.crcTable =\n jpeg.lossless.Utils.makeCRCTable());\n var crc = 0 ^ -1;\n\n for (var i = 0; i < uint8view.length; i++) {\n crc = (crc >>> 8) ^ crcTable[(crc ^ uint8view[i]) & 0xff];\n }\n\n return (crc ^ -1) >>> 0;\n };\n\n /*** Exports ***/\n\n var moduleType = typeof module;\n\n if (moduleType !== 'undefined' && module.exports) {\n module.exports = jpeg.lossless.Utils;\n }\n },\n {},\n ],\n },\n {},\n [6]\n )(6);\n});\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.b = self.location + \"\";\n\n// object to store loaded chunks\n// \"1\" means \"already loaded\"\nvar installedChunks = {\n\t920: 1\n};\n\n// no chunk install function needed\n// no chunk loading\n\n// no HMR\n\n// no HMR manifest","/**\n * @license\n * Copyright 2019 Google LLC\n * SPDX-License-Identifier: Apache-2.0\n */\nconst proxyMarker = Symbol(\"Comlink.proxy\");\nconst createEndpoint = Symbol(\"Comlink.endpoint\");\nconst releaseProxy = Symbol(\"Comlink.releaseProxy\");\nconst finalizer = Symbol(\"Comlink.finalizer\");\nconst throwMarker = Symbol(\"Comlink.thrown\");\nconst isObject = (val) => (typeof val === \"object\" && val !== null) || typeof val === \"function\";\n/**\n * Internal transfer handle to handle objects marked to proxy.\n */\nconst proxyTransferHandler = {\n canHandle: (val) => isObject(val) && val[proxyMarker],\n serialize(obj) {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port1);\n return [port2, [port2]];\n },\n deserialize(port) {\n port.start();\n return wrap(port);\n },\n};\n/**\n * Internal transfer handler to handle thrown exceptions.\n */\nconst throwTransferHandler = {\n canHandle: (value) => isObject(value) && throwMarker in value,\n serialize({ value }) {\n let serialized;\n if (value instanceof Error) {\n serialized = {\n isError: true,\n value: {\n message: value.message,\n name: value.name,\n stack: value.stack,\n },\n };\n }\n else {\n serialized = { isError: false, value };\n }\n return [serialized, []];\n },\n deserialize(serialized) {\n if (serialized.isError) {\n throw Object.assign(new Error(serialized.value.message), serialized.value);\n }\n throw serialized.value;\n },\n};\n/**\n * Allows customizing the serialization of certain values.\n */\nconst transferHandlers = new Map([\n [\"proxy\", proxyTransferHandler],\n [\"throw\", throwTransferHandler],\n]);\nfunction isAllowedOrigin(allowedOrigins, origin) {\n for (const allowedOrigin of allowedOrigins) {\n if (origin === allowedOrigin || allowedOrigin === \"*\") {\n return true;\n }\n if (allowedOrigin instanceof RegExp && allowedOrigin.test(origin)) {\n return true;\n }\n }\n return false;\n}\nfunction expose(obj, ep = globalThis, allowedOrigins = [\"*\"]) {\n ep.addEventListener(\"message\", function callback(ev) {\n if (!ev || !ev.data) {\n return;\n }\n if (!isAllowedOrigin(allowedOrigins, ev.origin)) {\n console.warn(`Invalid origin '${ev.origin}' for comlink proxy`);\n return;\n }\n const { id, type, path } = Object.assign({ path: [] }, ev.data);\n const argumentList = (ev.data.argumentList || []).map(fromWireValue);\n let returnValue;\n try {\n const parent = path.slice(0, -1).reduce((obj, prop) => obj[prop], obj);\n const rawValue = path.reduce((obj, prop) => obj[prop], obj);\n switch (type) {\n case \"GET\" /* MessageType.GET */:\n {\n returnValue = rawValue;\n }\n break;\n case \"SET\" /* MessageType.SET */:\n {\n parent[path.slice(-1)[0]] = fromWireValue(ev.data.value);\n returnValue = true;\n }\n break;\n case \"APPLY\" /* MessageType.APPLY */:\n {\n returnValue = rawValue.apply(parent, argumentList);\n }\n break;\n case \"CONSTRUCT\" /* MessageType.CONSTRUCT */:\n {\n const value = new rawValue(...argumentList);\n returnValue = proxy(value);\n }\n break;\n case \"ENDPOINT\" /* MessageType.ENDPOINT */:\n {\n const { port1, port2 } = new MessageChannel();\n expose(obj, port2);\n returnValue = transfer(port1, [port1]);\n }\n break;\n case \"RELEASE\" /* MessageType.RELEASE */:\n {\n returnValue = undefined;\n }\n break;\n default:\n return;\n }\n }\n catch (value) {\n returnValue = { value, [throwMarker]: 0 };\n }\n Promise.resolve(returnValue)\n .catch((value) => {\n return { value, [throwMarker]: 0 };\n })\n .then((returnValue) => {\n const [wireValue, transferables] = toWireValue(returnValue);\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n if (type === \"RELEASE\" /* MessageType.RELEASE */) {\n // detach and deactive after sending release response above.\n ep.removeEventListener(\"message\", callback);\n closeEndPoint(ep);\n if (finalizer in obj && typeof obj[finalizer] === \"function\") {\n obj[finalizer]();\n }\n }\n })\n .catch((error) => {\n // Send Serialization Error To Caller\n const [wireValue, transferables] = toWireValue({\n value: new TypeError(\"Unserializable return value\"),\n [throwMarker]: 0,\n });\n ep.postMessage(Object.assign(Object.assign({}, wireValue), { id }), transferables);\n });\n });\n if (ep.start) {\n ep.start();\n }\n}\nfunction isMessagePort(endpoint) {\n return endpoint.constructor.name === \"MessagePort\";\n}\nfunction closeEndPoint(endpoint) {\n if (isMessagePort(endpoint))\n endpoint.close();\n}\nfunction wrap(ep, target) {\n return createProxy(ep, [], target);\n}\nfunction throwIfProxyReleased(isReleased) {\n if (isReleased) {\n throw new Error(\"Proxy has been released and is not useable\");\n }\n}\nfunction releaseEndpoint(ep) {\n return requestResponseMessage(ep, {\n type: \"RELEASE\" /* MessageType.RELEASE */,\n }).then(() => {\n closeEndPoint(ep);\n });\n}\nconst proxyCounter = new WeakMap();\nconst proxyFinalizers = \"FinalizationRegistry\" in globalThis &&\n new FinalizationRegistry((ep) => {\n const newCount = (proxyCounter.get(ep) || 0) - 1;\n proxyCounter.set(ep, newCount);\n if (newCount === 0) {\n releaseEndpoint(ep);\n }\n });\nfunction registerProxy(proxy, ep) {\n const newCount = (proxyCounter.get(ep) || 0) + 1;\n proxyCounter.set(ep, newCount);\n if (proxyFinalizers) {\n proxyFinalizers.register(proxy, ep, proxy);\n }\n}\nfunction unregisterProxy(proxy) {\n if (proxyFinalizers) {\n proxyFinalizers.unregister(proxy);\n }\n}\nfunction createProxy(ep, path = [], target = function () { }) {\n let isProxyReleased = false;\n const proxy = new Proxy(target, {\n get(_target, prop) {\n throwIfProxyReleased(isProxyReleased);\n if (prop === releaseProxy) {\n return () => {\n unregisterProxy(proxy);\n releaseEndpoint(ep);\n isProxyReleased = true;\n };\n }\n if (prop === \"then\") {\n if (path.length === 0) {\n return { then: () => proxy };\n }\n const r = requestResponseMessage(ep, {\n type: \"GET\" /* MessageType.GET */,\n path: path.map((p) => p.toString()),\n }).then(fromWireValue);\n return r.then.bind(r);\n }\n return createProxy(ep, [...path, prop]);\n },\n set(_target, prop, rawValue) {\n throwIfProxyReleased(isProxyReleased);\n // FIXME: ES6 Proxy Handler `set` methods are supposed to return a\n // boolean. To show good will, we return true asynchronously ¯\\_(ツ)_/¯\n const [value, transferables] = toWireValue(rawValue);\n return requestResponseMessage(ep, {\n type: \"SET\" /* MessageType.SET */,\n path: [...path, prop].map((p) => p.toString()),\n value,\n }, transferables).then(fromWireValue);\n },\n apply(_target, _thisArg, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const last = path[path.length - 1];\n if (last === createEndpoint) {\n return requestResponseMessage(ep, {\n type: \"ENDPOINT\" /* MessageType.ENDPOINT */,\n }).then(fromWireValue);\n }\n // We just pretend that `bind()` didn’t happen.\n if (last === \"bind\") {\n return createProxy(ep, path.slice(0, -1));\n }\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: \"APPLY\" /* MessageType.APPLY */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n construct(_target, rawArgumentList) {\n throwIfProxyReleased(isProxyReleased);\n const [argumentList, transferables] = processArguments(rawArgumentList);\n return requestResponseMessage(ep, {\n type: \"CONSTRUCT\" /* MessageType.CONSTRUCT */,\n path: path.map((p) => p.toString()),\n argumentList,\n }, transferables).then(fromWireValue);\n },\n });\n registerProxy(proxy, ep);\n return proxy;\n}\nfunction myFlat(arr) {\n return Array.prototype.concat.apply([], arr);\n}\nfunction processArguments(argumentList) {\n const processed = argumentList.map(toWireValue);\n return [processed.map((v) => v[0]), myFlat(processed.map((v) => v[1]))];\n}\nconst transferCache = new WeakMap();\nfunction transfer(obj, transfers) {\n transferCache.set(obj, transfers);\n return obj;\n}\nfunction proxy(obj) {\n return Object.assign(obj, { [proxyMarker]: true });\n}\nfunction windowEndpoint(w, context = globalThis, targetOrigin = \"*\") {\n return {\n postMessage: (msg, transferables) => w.postMessage(msg, targetOrigin, transferables),\n addEventListener: context.addEventListener.bind(context),\n removeEventListener: context.removeEventListener.bind(context),\n };\n}\nfunction toWireValue(value) {\n for (const [name, handler] of transferHandlers) {\n if (handler.canHandle(value)) {\n const [serializedValue, transferables] = handler.serialize(value);\n return [\n {\n type: \"HANDLER\" /* WireValueType.HANDLER */,\n name,\n value: serializedValue,\n },\n transferables,\n ];\n }\n }\n return [\n {\n type: \"RAW\" /* WireValueType.RAW */,\n value,\n },\n transferCache.get(value) || [],\n ];\n}\nfunction fromWireValue(value) {\n switch (value.type) {\n case \"HANDLER\" /* WireValueType.HANDLER */:\n return transferHandlers.get(value.name).deserialize(value.value);\n case \"RAW\" /* WireValueType.RAW */:\n return value.value;\n }\n}\nfunction requestResponseMessage(ep, msg, transfers) {\n return new Promise((resolve) => {\n const id = generateUUID();\n ep.addEventListener(\"message\", function l(ev) {\n if (!ev.data || !ev.data.id || ev.data.id !== id) {\n return;\n }\n ep.removeEventListener(\"message\", l);\n resolve(ev.data);\n });\n if (ep.start) {\n ep.start();\n }\n ep.postMessage(Object.assign({ id }, msg), transfers);\n });\n}\nfunction generateUUID() {\n return new Array(4)\n .fill(0)\n .map(() => Math.floor(Math.random() * Number.MAX_SAFE_INTEGER).toString(16))\n .join(\"-\");\n}\n\nexport { createEndpoint, expose, finalizer, proxy, proxyMarker, releaseProxy, transfer, transferHandlers, windowEndpoint, wrap };\n//# sourceMappingURL=comlink.mjs.map\n","import type { ByteArray } from 'dicom-parser';\nimport type { Types } from '@cornerstonejs/core';\n\nasync function decodeLittleEndian(\n imageFrame: Types.IImageFrame,\n pixelData: ByteArray\n): Promise<Types.IImageFrame> {\n let arrayBuffer = pixelData.buffer;\n\n let offset = pixelData.byteOffset;\n const length = pixelData.length;\n\n if (imageFrame.bitsAllocated === 16) {\n // if pixel data is not aligned on even boundary, shift it so we can create the 16 bit array\n // buffers on it\n if (offset % 2) {\n arrayBuffer = arrayBuffer.slice(offset);\n offset = 0;\n }\n\n if (imageFrame.pixelRepresentation === 0) {\n imageFrame.pixelData = new Uint16Array(arrayBuffer, offset, length / 2);\n } else {\n imageFrame.pixelData = new Int16Array(arrayBuffer, offset, length / 2);\n }\n } else if (imageFrame.bitsAllocated === 8 || imageFrame.bitsAllocated === 1) {\n imageFrame.pixelData = pixelData;\n } else if (imageFrame.bitsAllocated === 32) {\n // if pixel data is not aligned on even boundary, shift it\n if (offset % 2) {\n arrayBuffer = arrayBuffer.slice(offset);\n offset = 0;\n }\n\n imageFrame.pixelData = new Float32Array(arrayBuffer, offset, length / 4);\n }\n\n return imageFrame;\n}\n\nexport default decodeLittleEndian;\n","import type { ByteArray } from 'dicom-parser';\nimport type { Types } from '@cornerstonejs/core/src';\n\n/* eslint no-bitwise: 0 */\nfunction swap16(val) {\n return ((val & 0xff) << 8) | ((val >> 8) & 0xff);\n}\n\nasync function decodeBigEndian(\n imageFrame: Types.IImageFrame,\n pixelData: ByteArray\n): Promise<Types.IImageFrame> {\n if (imageFrame.bitsAllocated === 16) {\n let arrayBuffer = pixelData.buffer;\n\n let offset = pixelData.byteOffset;\n const length = pixelData.length;\n // if pixel data is not aligned on even boundary, shift it so we can create the 16 bit array\n // buffers on it\n\n if (offset % 2) {\n arrayBuffer = arrayBuffer.slice(offset);\n offset = 0;\n }\n\n if (imageFrame.pixelRepresentation === 0) {\n imageFrame.pixelData = new Uint16Array(arrayBuffer, offset, length / 2);\n } else {\n imageFrame.pixelData = new Int16Array(arrayBuffer, offset, length / 2);\n }\n // Do the byte swap\n for (let i = 0; i < imageFrame.pixelData.length; i++) {\n imageFrame.pixelData[i] = swap16(imageFrame.pixelData[i]);\n }\n } else if (imageFrame.bitsAllocated === 8) {\n imageFrame.pixelData = pixelData;\n }\n\n return imageFrame;\n}\n\nexport default decodeBigEndian;\n","import type { ByteArray } from 'dicom-parser';\nimport type { Types } from '@cornerstonejs/core';\n\nasync function decodeRLE(\n imageFrame: Types.IImageFrame,\n pixelData: ByteArray\n): Promise<Types.IImageFrame> {\n if (imageFrame.bitsAllocated === 8) {\n if (imageFrame.planarConfiguration) {\n return decode8Planar(imageFrame, pixelData);\n }\n\n return decode8(imageFrame, pixelData);\n } else if (imageFrame.bitsAllocated === 16) {\n return decode16(imageFrame, pixelData);\n }\n\n throw new Error('unsupported pixel format for RLE');\n}\n\nfunction decode8(imageFrame: Types.IImageFrame, pixelData: ByteArray) {\n const frameData = pixelData;\n const frameSize = imageFrame.rows * imageFrame.columns;\n const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel);\n const header = new DataView(frameData.buffer, frameData.byteOffset);\n const data = new Int8Array(frameData.buffer, frameData.byteOffset);\n const out = new Int8Array(outFrame);\n\n let outIndex = 0;\n const numSegments = header.getInt32(0, true);\n\n for (let s = 0; s < numSegments; ++s) {\n outIndex = s;\n\n let inIndex = header.getInt32((s + 1) * 4, true);\n\n let maxIndex = header.getInt32((s + 2) * 4, true);\n\n if (maxIndex === 0) {\n maxIndex = frameData.length;\n }\n\n const endOfSegment = frameSize * numSegments;\n\n while (inIndex < maxIndex) {\n const n = data[inIndex++];\n\n if (n >= 0 && n <= 127) {\n // copy n bytes\n for (let i = 0; i < n + 1 && outIndex < endOfSegment; ++i) {\n out[outIndex] = data[inIndex++];\n outIndex += imageFrame.samplesPerPixel;\n }\n } else if (n <= -1 && n >= -127) {\n const value = data[inIndex++];\n // run of n bytes\n\n for (let j = 0; j < -n + 1 && outIndex < endOfSegment; ++j) {\n out[outIndex] = value;\n outIndex += imageFrame.samplesPerPixel;\n }\n } /* else if (n === -128) {\n\n } // do nothing */\n }\n }\n imageFrame.pixelData = new Uint8Array(outFrame);\n\n return imageFrame;\n}\n\nfunction decode8Planar(imageFrame: Types.IImageFrame, pixelData: ByteArray) {\n const frameData = pixelData;\n const frameSize = imageFrame.rows * imageFrame.columns;\n const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel);\n const header = new DataView(frameData.buffer, frameData.byteOffset);\n const data = new Int8Array(frameData.buffer, frameData.byteOffset);\n const out = new Int8Array(outFrame);\n\n let outIndex = 0;\n const numSegments = header.getInt32(0, true);\n\n for (let s = 0; s < numSegments; ++s) {\n outIndex = s * frameSize;\n\n let inIndex = header.getInt32((s + 1) * 4, true);\n\n let maxIndex = header.getInt32((s + 2) * 4, true);\n\n if (maxIndex === 0) {\n maxIndex = frameData.length;\n }\n\n const endOfSegment = frameSize * numSegments;\n\n while (inIndex < maxIndex) {\n const n = data[inIndex++];\n\n if (n >= 0 && n <= 127) {\n // copy n bytes\n for (let i = 0; i < n + 1 && outIndex < endOfSegment; ++i) {\n out[outIndex] = data[inIndex++];\n outIndex++;\n }\n } else if (n <= -1 && n >= -127) {\n const value = data[inIndex++];\n // run of n bytes\n\n for (let j = 0; j < -n + 1 && outIndex < endOfSegment; ++j) {\n out[outIndex] = value;\n outIndex++;\n }\n } /* else if (n === -128) {\n\n } // do nothing */\n }\n }\n imageFrame.pixelData = new Uint8Array(outFrame);\n\n return imageFrame;\n}\n\nfunction decode16(imageFrame: Types.IImageFrame, pixelData: ByteArray) {\n const frameData = pixelData;\n const frameSize = imageFrame.rows * imageFrame.columns;\n const outFrame = new ArrayBuffer(frameSize * imageFrame.samplesPerPixel * 2);\n\n const header = new DataView(frameData.buffer, frameData.byteOffset);\n const data = new Int8Array(frameData.buffer, frameData.byteOffset);\n const out = new Int8Array(outFrame);\n\n const numSegments = header.getInt32(0, true);\n\n for (let s = 0; s < numSegments; ++s) {\n let outIndex = 0;\n const highByte = s === 0 ? 1 : 0;\n\n let inIndex = header.getInt32((s + 1) * 4, true);\n\n let maxIndex = header.getInt32((s + 2) * 4, true);\n\n if (maxIndex === 0) {\n maxIndex = frameData.length;\n }\n\n while (inIndex < maxIndex) {\n const n = data[inIndex++];\n\n if (n >= 0 && n <= 127) {\n for (let i = 0; i < n + 1 && outIndex < frameSize; ++i) {\n out[outIndex * 2 + highByte] = data[inIndex++];\n outIndex++;\n }\n } else if (n <= -1 && n >= -127) {\n const value = data[inIndex++];\n\n for (let j = 0; j < -n + 1 && outIndex < frameSize; ++j) {\n out[outIndex * 2 + highByte] = value;\n outIndex++;\n }\n } /* else if (n === -128) {\n\n } // do nothing */\n }\n }\n if (imageFrame.pixelRepresentation === 0) {\n imageFrame.pixelData = new Uint16Array(outFrame);\n } else {\n imageFrame.pixelData = new Int16Array(outFrame);\n }\n\n return imageFrame;\n}\n\nexport default decodeRLE;\n","import type {\n LibJpegTurbo8Bit,\n OpenJpegModule,\n} from '@cornerstonejs/codec-libjpeg-turbo-8bit/dist/libjpegturbowasm_decode';\nimport type { ByteArray } from 'dicom-parser';\n// @ts-ignore\nimport libjpegTurboFactory from '@cornerstonejs/codec-libjpeg-turbo-8bit/decodewasmjs';\n\n// @ts-ignore\n// import libjpegTurboWasm from '@cornerstonejs/codec-libjpeg-turbo-8bit/decodewasm';\nconst libjpegTurboWasm = new URL(\n '@cornerstonejs/codec-libjpeg-turbo-8bit/decodewasm',\n import.meta.url\n);\nimport type { Types } from '@cornerstonejs/core/src';\n\nconst local: {\n codec: OpenJpegModule;\n decoder: LibJpegTurbo8Bit;\n} = {\n codec: undefined,\n decoder: undefined,\n};\n\nfunction initLibjpegTurbo(): Promise<void> {\n if (local.codec) {\n return Promise.resolve();\n }\n\n const libjpegTurboModule = libjpegTurboFactory({\n locateFile: (f) => {\n if (f.endsWith('.wasm')) {\n return libjpegTurboWasm.toString();\n }\n\n return f;\n },\n });\n\n return new Promise((resolve, reject) => {\n libjpegTurboModule.then((instance) => {\n local.codec = instance;\n local.decoder = new instance.JPEGDecoder();\n resolve();\n }, reject);\n });\n}\n\n// imageFrame.pixelRepresentation === 1 <-- Signed\n/**\n *\n * @param {*} compressedImageFrame\n * @param {object} imageInfo\n * @param {boolean} imageInfo.signed -\n */\nasync function decodeAsync(\n compressedImageFrame,\n imageInfo\n): Promise<Types.IImageFrame> {\n await initLibjpegTurbo();\n const decoder = local.decoder;\n\n // get pointer to the source/encoded bit stream buffer in WASM memory\n // that can hold the encoded bitstream\n const encodedBufferInWASM = decoder.getEncodedBuffer(\n compressedImageFrame.length\n );\n\n // copy the encoded bitstream into WASM memory buffer\n encodedBufferInWASM.set(compressedImageFrame);\n\n // decode it\n decoder.decode();\n\n // get information about the decoded image\n const frameInfo = decoder.getFrameInfo();\n\n // get the decoded pixels\n const decodedPixelsInWASM = decoder.getDecodedBuffer();\n\n const encodedImageInfo = {\n columns: frameInfo.width,\n rows: frameInfo.height,\n bitsPerPixel: frameInfo.bitsPerSample,\n signed: imageInfo.signed,\n bytesPerPixel: imageInfo.bytesPerPixel,\n componentsPerPixel: frameInfo.componentCount,\n };\n\n const pixelData = getPixelData(frameInfo, decodedPixelsInWASM);\n\n const encodeOptions = {\n frameInfo,\n };\n\n return {\n ...imageInfo,\n pixelData,\n imageInfo: encodedImageInfo,\n encodeOptions,\n ...encodeOptions,\n ...encodedImageInfo,\n };\n}\n\nfunction getPixelData(frameInfo, decodedBuffer: ByteArray) {\n if (frameInfo.isSigned) {\n return new Int8Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength\n );\n }\n\n return new Uint8Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength\n );\n}\n\nexport default decodeAsync;\n","import type { ByteArray } from 'dicom-parser';\nimport type { Types } from '@cornerstonejs/core/src';\nimport type { WebWorkerDecodeConfig } from '../../types';\n\nconst local = {\n JpegImage: undefined,\n decodeConfig: {} as WebWorkerDecodeConfig,\n};\n\nexport function initialize(\n decodeConfig?: WebWorkerDecodeConfig\n): Promise<void> {\n local.decodeConfig = decodeConfig;\n\n if (local.JpegImage) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n // @ts-ignore\n import('../../../codecs/jpeg').then(({ JpegImage }) => {\n local.JpegImage = JpegImage;\n resolve();\n }, reject);\n });\n}\n\nasync function decodeJPEGBaseline12BitAsync(\n imageFrame: Types.IImageFrame,\n pixelData: ByteArray\n): Promise<Types.IImageFrame> {\n // check to make sure codec is loaded\n await initialize();\n if (typeof local.JpegImage === 'undefined') {\n throw new Error('No JPEG Baseline decoder loaded');\n }\n const jpeg = new local.JpegImage();\n\n jpeg.parse(pixelData);\n\n // Do not use the internal jpeg.js color transformation,\n // since we will handle this afterwards\n jpeg.colorTransform = false;\n\n if (imageFrame.bitsAllocated === 8) {\n imageFrame.pixelData = jpeg.getData(imageFrame.columns, imageFrame.rows);\n\n return imageFrame;\n } else if (imageFrame.bitsAllocated === 16) {\n imageFrame.pixelData = jpeg.getData16(imageFrame.columns, imageFrame.rows);\n\n return imageFrame;\n }\n}\n\nexport default decodeJPEGBaseline12BitAsync;\n","import type { ByteArray } from 'dicom-parser';\nimport type { Types } from '@cornerstonejs/core/src';\nimport type { WebWorkerDecodeConfig } from '../../types';\n\nconst local = {\n jpeg: undefined,\n decodeConfig: {} as WebWorkerDecodeConfig,\n};\n\nexport function initialize(\n decodeConfig?: WebWorkerDecodeConfig\n): Promise<void> {\n local.decodeConfig = decodeConfig;\n\n if (local.jpeg) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n import('../../../codecs/jpegLossless').then((jpeg) => {\n local.jpeg = jpeg;\n resolve();\n }, reject);\n });\n}\n\nasync function decodeJPEGLossless(\n imageFrame: Types.IImageFrame,\n pixelData: ByteArray\n): Promise<Types.IImageFrame> {\n await initialize();\n\n // check to make sure codec is loaded\n if (\n typeof local.jpeg === 'undefined' ||\n typeof local.jpeg.lossless === 'undefined' ||\n typeof local.jpeg.lossless.Decoder === 'undefined'\n ) {\n throw new Error('No JPEG Lossless decoder loaded');\n }\n\n const byteOutput = imageFrame.bitsAllocated <= 8 ? 1 : 2;\n // console.time('jpeglossless');\n const buffer = pixelData.buffer;\n const decoder = new local.jpeg.lossless.Decoder();\n const decompressedData = decoder.decode(\n buffer,\n pixelData.byteOffset,\n pixelData.length,\n byteOutput\n );\n // console.timeEnd('jpeglossless');\n\n if (imageFrame.pixelRepresentation === 0) {\n if (imageFrame.bitsAllocated === 16) {\n imageFrame.pixelData = new Uint16Array(decompressedData.buffer);\n\n return imageFrame;\n }\n // untested!\n imageFrame.pixelData = new Uint8Array(decompressedData.buffer);\n\n return imageFrame;\n }\n imageFrame.pixelData = new Int16Array(decompressedData.buffer);\n\n return imageFrame;\n}\n\nexport default decodeJPEGLossless;\n","import type {\n CharlsModule,\n JpegLSDecoder,\n} from '@cornerstonejs/codec-charls/dist/charlswasm_decode';\n// @ts-ignore\nimport charlsFactory from '@cornerstonejs/codec-charls/decodewasmjs';\n// @ts-ignore\n// import charlsWasm from '@cornerstonejs/codec-charls/decodewasm';\nconst charlsWasm = new URL(\n '@cornerstonejs/codec-charls/decodewasm',\n import.meta.url\n);\nimport type { ByteArray } from 'dicom-parser';\nimport type { WebWorkerDecodeConfig } from '../../types';\nimport type { Types } from '@cornerstonejs/core/src';\n\nconst local: {\n codec: CharlsModule;\n decoder: JpegLSDecoder;\n decodeConfig: WebWorkerDecodeConfig;\n} = {\n codec: undefined,\n decoder: undefined,\n decodeConfig: {} as WebWorkerDecodeConfig,\n};\n\nfunction getExceptionMessage(exception) {\n return typeof exception === 'number'\n ? local.codec.getExceptionMessage(exception)\n : exception;\n}\n\nexport function initialize(\n decodeConfig?: WebWorkerDecodeConfig\n): Promise<void> {\n local.decodeConfig = decodeConfig;\n\n if (local.codec) {\n return Promise.resolve();\n }\n\n const charlsModule = charlsFactory({\n locateFile: (f) => {\n if (f.endsWith('.wasm')) {\n return charlsWasm.toString();\n }\n\n return f;\n },\n });\n\n return new Promise((resolve, reject) => {\n charlsModule.then((instance) => {\n local.codec = instance;\n local.decoder = new instance.JpegLSDecoder();\n resolve();\n }, reject);\n });\n}\n\n/**\n *\n * @param {*} compressedImageFrame\n * @param {object} imageInfo\n * @param {boolean} imageInfo.signed - (pixelRepresentation === 1)\n */\nasync function decodeAsync(\n compressedImageFrame,\n imageInfo\n): Promise<Types.IImageFrame> {\n try {\n await initialize();\n const decoder = local.decoder;\n\n // get pointer to the source/encoded bit stream buffer in WASM memory\n // that can hold the encoded bitstream\n const encodedBufferInWASM = decoder.getEncodedBuffer(\n compressedImageFrame.length\n );\n\n // copy the encoded bitstream into WASM memory buffer\n encodedBufferInWASM.set(compressedImageFrame);\n\n // decode it\n decoder.decode();\n\n // get information about the decoded image\n const frameInfo = decoder.getFrameInfo();\n const interleaveMode = decoder.getInterleaveMode();\n const nearLossless = decoder.getNearLossless();\n\n // get the decoded pixels\n const decodedPixelsInWASM = decoder.getDecodedBuffer();\n\n const encodedImageInfo = {\n columns: frameInfo.width,\n rows: frameInfo.height,\n bitsPerPixel: frameInfo.bitsPerSample,\n signed: imageInfo.signed,\n bytesPerPixel: imageInfo.bytesPerPixel,\n componentsPerPixel: frameInfo.componentCount,\n };\n\n const pixelData = getPixelData(\n frameInfo,\n decodedPixelsInWASM,\n imageInfo.signed\n );\n\n const encodeOptions = {\n nearLossless,\n interleaveMode,\n frameInfo,\n };\n\n // local.codec.doLeakCheck();\n\n return {\n ...imageInfo,\n pixelData,\n imageInfo: encodedImageInfo,\n encodeOptions,\n ...encodeOptions,\n ...encodedImageInfo,\n };\n } catch (error) {\n // Handle cases where WASM throws an error internally, and it only gives JS a number\n // See https://emscripten.org/docs/porting/Debugging.html#handling-c-exceptions-from-javascript\n // TODO: Copy to other codecs as well\n throw getExceptionMessage(error);\n }\n}\n\nfunction getPixelData(frameInfo, decodedBuffer: ByteArray, signed: boolean) {\n if (frameInfo.bitsPerSample > 8) {\n if (signed) {\n return new Int16Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength / 2\n );\n }\n\n return new Uint16Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength / 2\n );\n }\n\n if (signed) {\n return new Int8Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength\n );\n }\n\n return new Uint8Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength\n );\n}\n\nexport default decodeAsync;\n","// https://emscripten.org/docs/api_reference/module.html\nimport type {\n J2KDecoder,\n OpenJpegModule,\n} from '@cornerstonejs/codec-openjpeg/dist/openjpegwasm_decode';\n// @ts-ignore\nimport openJpegFactory from '@cornerstonejs/codec-openjpeg/decodewasmjs';\n\n// Webpack asset/resource copies this to our output folder\n\n// TODO: At some point maybe we can use this instead.\n// This is closer to what Webpack 5 wants but it doesn't seem to work now\n// const wasm = new URL('./blah.wasm', import.meta.url)\n// @ts-ignore\n// import openjpegWasm from '@cornerstonejs/codec-openjpeg/decodewasm';\nconst openjpegWasm = new URL(\n '@cornerstonejs/codec-openjpeg/decodewasm',\n import.meta.url\n);\n\nimport type { Types } from '@cornerstonejs/core/src';\nimport type { WebWorkerDecodeConfig } from '../../types';\n\nconst local: {\n codec: OpenJpegModule;\n decoder: J2KDecoder;\n decodeConfig: WebWorkerDecodeConfig;\n} = {\n codec: undefined,\n decoder: undefined,\n decodeConfig: {} as WebWorkerDecodeConfig,\n};\n\nexport function initialize(\n decodeConfig?: WebWorkerDecodeConfig\n): Promise<void> {\n local.decodeConfig = decodeConfig;\n\n if (local.codec) {\n return Promise.resolve();\n }\n\n const openJpegModule = openJpegFactory({\n locateFile: (f) => {\n if (f.endsWith('.wasm')) {\n return openjpegWasm.toString();\n }\n\n return f;\n },\n });\n\n return new Promise((resolve, reject) => {\n openJpegModule.then((instance) => {\n local.codec = instance;\n local.decoder = new instance.J2KDecoder();\n resolve();\n }, reject);\n });\n}\n\n// https://github.com/chafey/openjpegjs/blob/master/test/browser/index.html\nasync function decodeAsync(\n compressedImageFrame,\n imageInfo\n): Promise<Types.IImageFrame> {\n await initialize();\n const decoder = local.decoder;\n\n // get pointer to the source/encoded bit stream buffer in WASM memory\n // that can hold the encoded bitstream\n const encodedBufferInWASM = decoder.getEncodedBuffer(\n compressedImageFrame.length\n );\n\n // copy the encoded bitstream into WASM memory buffer\n encodedBufferInWASM.set(compressedImageFrame);\n\n // decode it\n decoder.decode();\n // decoder.decodeSubResolution(decodeLevel, decodeLayer);\n // const resolutionAtLevel = decoder.calculateSizeAtDecompositionLevel(decodeLevel);\n\n // get information about the decoded image\n const frameInfo = decoder.getFrameInfo();\n // get the decoded pixels\n const decodedBufferInWASM = decoder.getDecodedBuffer();\n const imageFrame = new Uint8Array(decodedBufferInWASM.length);\n\n imageFrame.set(decodedBufferInWASM);\n\n const imageOffset = `x: ${decoder.getImageOffset().x}, y: ${\n decoder.getImageOffset().y\n }`;\n const numDecompositions = decoder.getNumDecompositions();\n const numLayers = decoder.getNumLayers();\n const progessionOrder = ['unknown', 'LRCP', 'RLCP', 'RPCL', 'PCRL', 'CPRL'][\n decoder.getProgressionOrder() + 1\n ];\n const reversible = decoder.getIsReversible();\n const blockDimensions = `${decoder.getBlockDimensions().width} x ${\n decoder.getBlockDimensions().height\n }`;\n const tileSize = `${decoder.getTileSize().width} x ${\n decoder.getTileSize().height\n }`;\n const tileOffset = `${decoder.getTileOffset().x}, ${\n decoder.getTileOffset().y\n }`;\n const colorTransform = decoder.getColorSpace();\n\n const decodedSize = `${decodedBufferInWASM.length.toLocaleString()} bytes`;\n const compressionRatio = `${(\n decodedBufferInWASM.length / encodedBufferInWASM.length\n ).toFixed(2)}:1`;\n\n const encodedImageInfo = {\n columns: frameInfo.width,\n rows: frameInfo.height,\n bitsPerPixel: frameInfo.bitsPerSample,\n signed: frameInfo.isSigned,\n bytesPerPixel: imageInfo.bytesPerPixel,\n componentsPerPixel: frameInfo.componentCount,\n };\n const pixelData = getPixelData(frameInfo, decodedBufferInWASM);\n\n const encodeOptions = {\n imageOffset,\n numDecompositions,\n numLayers,\n progessionOrder,\n reversible,\n blockDimensions,\n tileSize,\n tileOffset,\n colorTransform,\n decodedSize,\n compressionRatio,\n };\n\n return {\n ...imageInfo,\n pixelData,\n imageInfo: encodedImageInfo,\n encodeOptions,\n ...encodeOptions,\n ...encodedImageInfo,\n };\n}\n\nfunction getPixelData(frameInfo, decodedBuffer) {\n if (frameInfo.bitsPerSample > 8) {\n if (frameInfo.isSigned) {\n return new Int16Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength / 2\n );\n }\n\n return new Uint16Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength / 2\n );\n }\n\n if (frameInfo.isSigned) {\n return new Int8Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength\n );\n }\n\n return new Uint8Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength\n );\n}\n\nexport default decodeAsync;\n","import type { ByteArray } from 'dicom-parser';\n// @ts-ignore\nimport openJphFactory from '@cornerstonejs/codec-openjph/wasmjs';\n// @ts-ignore\n// import openjphWasm from '@cornerstonejs/codec-openjph/wasm';\nconst openjphWasm = new URL(\n '@cornerstonejs/codec-openjph/wasm',\n import.meta.url\n);\n\nimport type { LoaderDecodeOptions } from '../../types';\n\nconst local: {\n codec: unknown;\n decoder: unknown;\n decodeConfig: LoaderDecodeOptions;\n} = {\n codec: undefined,\n decoder: undefined,\n decodeConfig: {},\n};\n\nfunction calculateSizeAtDecompositionLevel(\n decompositionLevel: number,\n frameWidth: number,\n frameHeight: number\n) {\n const result = { width: frameWidth, height: frameHeight };\n while (decompositionLevel > 0) {\n result.width = Math.ceil(result.width / 2);\n result.height = Math.ceil(result.height / 2);\n decompositionLevel--;\n }\n return result;\n}\n\nexport function initialize(decodeConfig?: LoaderDecodeOptions): Promise<void> {\n local.decodeConfig = decodeConfig;\n\n if (local.codec) {\n return Promise.resolve();\n }\n\n const openJphModule = openJphFactory({\n locateFile: (f) => {\n if (f.endsWith('.wasm')) {\n return openjphWasm;\n }\n\n return f;\n },\n });\n\n return new Promise<void>((resolve, reject) => {\n openJphModule.then((instance) => {\n local.codec = instance;\n local.decoder = new instance.HTJ2KDecoder();\n resolve();\n }, reject);\n });\n}\n\n// https://github.com/chafey/openjpegjs/blob/master/test/browser/index.html\nasync function decodeAsync(compressedImageFrame: ByteArray, imageInfo) {\n await initialize();\n // const decoder = local.decoder; // This is much slower for some reason\n // @ts-expect-error\n const decoder = new local.codec.HTJ2KDecoder();\n\n // get pointer to the source/encoded bit stream buffer in WASM memory\n // that can hold the encoded bitstream\n const encodedBufferInWASM = decoder.getEncodedBuffer(\n compressedImageFrame.length\n );\n\n // copy the encoded bitstream into WASM memory buffer\n encodedBufferInWASM.set(compressedImageFrame);\n\n // decode it\n // decoder.decode();\n const decodeLevel = imageInfo.decodeLevel || 0;\n decoder.decodeSubResolution(decodeLevel);\n // decoder.decodeSubResolution(decodeLevel, decodeLayer);\n // const resolutionAtLevel = decoder.calculateSizeAtDecompositionLevel(decodeLevel);\n\n // get information about the decoded image\n const frameInfo = decoder.getFrameInfo();\n // Overwrite width/height if subresolution\n if (imageInfo.decodeLevel > 0) {\n const { width, height } = calculateSizeAtDecompositionLevel(\n imageInfo.decodeLevel,\n frameInfo.width,\n frameInfo.height\n );\n frameInfo.width = width;\n frameInfo.height = height;\n // console.log(`Decoded sub-resolution of size: ${width} x ${height}`);\n }\n // get the decoded pixels\n const decodedBufferInWASM = decoder.getDecodedBuffer();\n const imageFrame = new Uint8Array(decodedBufferInWASM.length);\n\n imageFrame.set(decodedBufferInWASM);\n\n const imageOffset = `x: ${decoder.getImageOffset().x}, y: ${\n decoder.getImageOffset().y\n }`;\n const numDecompositions = decoder.getNumDecompositions();\n const numLayers = decoder.getNumLayers();\n const progessionOrder = ['unknown', 'LRCP', 'RLCP', 'RPCL', 'PCRL', 'CPRL'][\n decoder.getProgressionOrder() + 1\n ];\n const reversible = decoder.getIsReversible();\n const blockDimensions = `${decoder.getBlockDimensions().width} x ${\n decoder.getBlockDimensions().height\n }`;\n const tileSize = `${decoder.getTileSize().width} x ${\n decoder.getTileSize().height\n }`;\n const tileOffset = `${decoder.getTileOffset().x}, ${\n decoder.getTileOffset().y\n }`;\n // const colorTransform = decoder.getColorSpace();\n\n const decodedSize = `${decodedBufferInWASM.length.toLocaleString()} bytes`;\n const compressionRatio = `${(\n decodedBufferInWASM.length / encodedBufferInWASM.length\n ).toFixed(2)}:1`;\n\n const encodedImageInfo = {\n columns: frameInfo.width,\n rows: frameInfo.height,\n bitsPerPixel: frameInfo.bitsPerSample,\n signed: frameInfo.isSigned,\n bytesPerPixel: imageInfo.bytesPerPixel,\n componentsPerPixel: frameInfo.componentCount,\n };\n // const pixelData = getPixelData(frameInfo, decodedBufferInWASM);\n\n /**\n * Have to truncate the arraybuffer here to the length of the typed array. Not\n * sure why the arraybuffer is so huge, maybe this is allocated by the WASM\n * module? In any case, I think it's too big to postMessage in it's entirety.\n */\n let pixelData = getPixelData(frameInfo, decodedBufferInWASM);\n const { buffer: b, byteOffset, byteLength } = pixelData;\n const pixelDataArrayBuffer = b.slice(byteOffset, byteOffset + byteLength);\n\n // @ts-ignore\n pixelData = new pixelData.constructor(pixelDataArrayBuffer);\n\n const encodeOptions = {\n imageOffset,\n numDecompositions,\n numLayers,\n progessionOrder,\n reversible,\n blockDimensions,\n tileSize,\n tileOffset,\n // colorTransform,\n decodedSize,\n compressionRatio,\n };\n\n return {\n ...imageInfo,\n pixelData,\n imageInfo: encodedImageInfo,\n encodeOptions,\n ...encodeOptions,\n ...encodedImageInfo,\n };\n}\n\nfunction getPixelData(frameInfo, decodedBuffer) {\n if (frameInfo.bitsPerSample > 8) {\n if (frameInfo.isSigned) {\n return new Int16Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength / 2\n );\n }\n\n return new Uint16Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength / 2\n );\n }\n\n if (frameInfo.isSigned) {\n return new Int8Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength\n );\n }\n\n return new Uint8Array(\n decodedBuffer.buffer,\n decodedBuffer.byteOffset,\n decodedBuffer.byteLength\n );\n}\n\nexport default decodeAsync;\n","import type { Types } from '@cornerstonejs/core';\n\n/**\n * Calculate the minimum and maximum values in an Array\n *\n * @param {Number[]} storedPixelData\n * @return {{min: Number, max: Number}}\n */\nfunction getMinMax(storedPixelData: Types.PixelDataTypedArray): {\n min: number;\n max: number;\n} {\n // we always calculate the min max values since they are not always\n // present in DICOM and we don't want to trust them anyway as cornerstone\n // depends on us providing reliable values for these\n let min = storedPixelData[0];\n\n let max = storedPixelData[0];\n\n let storedPixel;\n const numPixels = storedPixelData.length;\n\n for (let index = 1; index < numPixels; index++) {\n storedPixel = storedPixelData[index];\n min = Math.min(min, storedPixel);\n max = Math.max(max, storedPixel);\n }\n\n return {\n min,\n max,\n };\n}\n\nexport default getMinMax;\n","/* eslint-disable complexity */\nimport bilinear from './shared/scaling/bilinear';\nimport replicate from './shared/scaling/replicate';\nimport { expose } from 'comlink';\n\nimport decodeLittleEndian from './shared/decoders/decodeLittleEndian';\nimport decodeBigEndian from './shared/decoders/decodeBigEndian';\nimport decodeRLE from './shared/decoders/decodeRLE';\nimport decodeJPEGBaseline8Bit from './shared/decoders/decodeJPEGBaseline8Bit';\n// import decodeJPEGBaseline12Bit from './shared/decoders/decodeJPEGBaseline12Bit';\nimport decodeJPEGBaseline12Bit from './shared/decoders/decodeJPEGBaseline12Bit-js';\nimport decodeJPEGLossless from './shared/decoders/decodeJPEGLossless';\nimport decodeJPEGLS from './shared/decoders/decodeJPEGLS';\nimport decodeJPEG2000 from './shared/decoders/decodeJPEG2000';\nimport decodeHTJ2K from './shared/decoders/decodeHTJ2K';\n// Note that the scaling is pixel value scaling, which is applying a modality LUT\nimport applyModalityLUT from './shared/scaling/scaleArray';\nimport getMinMax from './shared/getMinMax';\nimport getPixelDataTypeFromMinMax from './shared/getPixelDataTypeFromMinMax';\nimport isColorImage from './shared/isColorImage';\n\nconst imageUtils = {\n bilinear,\n replicate,\n};\n\n/**\n * Decodes the provided image frame.\n * This is an async function return the result, or you can provide an optional\n * callbackFn that is called with the results.\n */\nasync function decodeImageFrame(\n imageFrame,\n transferSyntax,\n pixelData,\n decodeConfig,\n options,\n callbackFn\n) {\n const start = new Date().getTime();\n\n let decodePromise = null;\n\n let opts;\n\n switch (transferSyntax) {\n case '1.2.840.10008.1.2':\n case '1.2.840.10008.1.2.1':\n // Implicit or Explicit VR Little Endian\n decodePromise = decodeLittleEndian(imageFrame, pixelData);\n break;\n case '1.2.840.10008.1.2.2':\n // Explicit VR Big Endian (retired)\n decodePromise = decodeBigEndian(imageFrame, pixelData);\n break;\n case '1.2.840.10008.1.2.1.99':\n // Deflate transfer syntax (deflated by dicomParser)\n decodePromise = decodeLittleEndian(imageFrame, pixelData);\n break;\n case '1.2.840.10008.1.2.5':\n // RLE Lossless\n decodePromise = decodeRLE(imageFrame, pixelData);\n break;\n case '1.2.840.10008.1.2.4.50':\n // JPEG Baseline lossy process 1 (8 bit)\n opts = {\n ...imageFrame,\n };\n\n decodePromise = decodeJPEGBaseline8Bit(pixelData, opts);\n break;\n case '1.2.840.10008.1.2.4.51':\n // JPEG Baseline lossy process 2 & 4 (12 bit)\n // opts = {\n // ...imageFrame,\n // };\n // decodePromise = decodeJPEGBaseline12Bit(pixelData, opts);\n //throw new Error('Currently unsupported: 1.2.840.10008.1.2.4.51');\n decodePromise = decodeJPEGBaseline12Bit(imageFrame, pixelData);\n break;\n case '1.2.840.10008.1.2.4.57':\n // JPEG Lossless, Nonhierarchical (Processes 14)\n decodePromise = decodeJPEGLossless(imageFrame, pixelData);\n break;\n case '1.2.840.10008.1.2.4.70':\n // JPEG Lossless, Nonhierarchical (Processes 14 [Selection 1])\n decodePromise = decodeJPEGLossless(imageFrame, pixelData);\n break;\n case '1.2.840.10008.1.2.4.80':\n // JPEG-LS Lossless Image Compression\n opts = {\n signed: imageFrame.pixelRepresentation === 1, // imageFrame.signed,\n // shouldn't need...\n bytesPerPixel: imageFrame.bitsAllocated <= 8 ? 1 : 2,\n ...imageFrame,\n };\n\n decodePromise = decodeJPEGLS(pixelData, opts);\n break;\n case '1.2.840.10008.1.2.4.81':\n // JPEG-LS Lossy (Near-Lossless) Image Compression\n opts = {\n signed: imageFrame.pixelRepresentation === 1, // imageFrame.signed,\n // shouldn't need...\n bytesPerPixel: imageFrame.bitsAllocated <= 8 ? 1 : 2,\n ...imageFrame,\n };\n\n decodePromise = decodeJPEGLS(pixelData, opts);\n break;\n case '1.2.840.10008.1.2.4.90':\n opts = {\n ...imageFrame,\n };\n\n // JPEG 2000 Lossless\n // imageFrame, pixelData, decodeConfig, options\n decodePromise = decodeJPEG2000(pixelData, opts);\n break;\n case '1.2.840.10008.1.2.4.91':\n // JPEG 2000 Lossy\n opts = {\n ...imageFrame,\n };\n\n // JPEG 2000 Lossy\n // imageFrame, pixelData, decodeConfig, options\n decodePromise = decodeJPEG2000(pixelData, opts);\n break;\n case '3.2.840.10008.1.2.4.96':\n case '1.2.840.10008.1.2.4.201':\n case '1.2.840.10008.1.2.4.202':\n case '1.2.840.10008.1.2.4.203':\n // HTJ2K\n opts = {\n ...imageFrame,\n };\n\n decodePromise = decodeHTJ2K(pixelData, opts);\n break;\n default:\n throw new Error(`no decoder for transfer syntax ${transferSyntax}`);\n }\n\n /* Don't know if these work...\n // JPEG 2000 Part 2 Multicomponent Image Compression (Lossless Only)\n else if(transferSyntax === \"1.2.840.10008.1.2.4.92\")\n {\n return decodeJPEG2000(dataSet, frame);\n }\n // JPEG 2000 Part 2 Multicomponent Image Compression\n else if(transferSyntax === \"1.2.840.10008.1.2.4.93\")\n {\n return decodeJPEG2000(dataSet, frame);\n }\n */\n\n if (!decodePromise) {\n throw new Error('decodePromise not defined');\n }\n\n const decodedFrame = await decodePromise;\n\n const postProcessed = postProcessDecodedPixels(\n decodedFrame,\n options,\n start,\n decodeConfig\n );\n\n // Call the callbackFn to agree with older arguments\n callbackFn?.(postProcessed);\n\n return postProcessed;\n}\n\nfunction postProcessDecodedPixels(imageFrame, options, start, decodeConfig) {\n const shouldShift =\n imageFrame.pixelRepresentation !== undefined &&\n imageFrame.pixelRepresentation === 1;\n const shift =\n shouldShift && imageFrame.bitsStored !== undefined\n ? 32 - imageFrame.bitsStored\n : undefined;\n\n if (shouldShift && shift !== undefined) {\n for (let i = 0; i < imageFrame.pixelData.length; i++) {\n // eslint-disable-next-line no-bitwise\n imageFrame.pixelData[i] = (imageFrame.pixelData[i] << shift) >> shift;\n }\n }\n\n // Cache the pixelData reference quickly incase we want to set a targetBuffer _and_ scale.\n let pixelDataArray = imageFrame.pixelData;\n imageFrame.pixelDataLength = imageFrame.pixelData.length;\n const { min: minBeforeScale, max: maxBeforeScale } = getMinMax(\n imageFrame.pixelData\n );\n\n const typedArrayConstructors = {\n Uint8Array,\n Uint16Array,\n Int16Array,\n Float32Array,\n };\n\n const type = options.targetBuffer?.type;\n\n const canRenderFloat =\n typeof options.allowFloatRendering !== 'undefined'\n ? options.allowFloatRendering\n : true;\n\n // Sometimes the type is specified before the DICOM header data has been\n // read. This is fine except for color data, where the wrong type gets\n // specified. Don't use the target buffer in that case.\n const invalidType =\n isColorImage(imageFrame.photometricInterpretation) &&\n options.targetBuffer?.offset === undefined;\n\n const willScale = options.preScale?.enabled;\n\n const hasFloatRescale =\n willScale &&\n Object.values(options.preScale.scalingParameters).some(\n (v) => typeof v === 'number' && !Number.isInteger(v)\n );\n const disableScale =\n !options.preScale.enabled || (!canRenderFloat && hasFloatRescale);\n\n if (type && !invalidType) {\n pixelDataArray = _handleTargetBuffer(\n options,\n imageFrame,\n typedArrayConstructors,\n pixelDataArray\n );\n } else if (options.preScale.enabled && !disableScale) {\n pixelDataArray = _handlePreScaleSetup(\n options,\n minBeforeScale,\n maxBeforeScale,\n imageFrame\n );\n } else {\n pixelDataArray = _getDefaultPixelDataArray(\n minBeforeScale,\n maxBeforeScale,\n imageFrame\n );\n }\n\n let minAfterScale = minBeforeScale;\n let maxAfterScale = maxBeforeScale;\n\n if (options.preScale.enabled && !disableScale) {\n const scalingParameters = options.preScale.scalingParameters;\n _validateScalingParameters(scalingParameters);\n\n const { rescaleSlope, rescaleIntercept } = scalingParameters;\n const isSlopeAndInterceptNumbers =\n typeof rescaleSlope === 'number' && typeof rescaleIntercept === 'number';\n\n if (isSlopeAndInterceptNumbers) {\n applyModalityLUT(pixelDataArray, scalingParameters);\n imageFrame.preScale = {\n ...options.preScale,\n scaled: true,\n };\n\n // calculate the min and max after scaling\n const { rescaleIntercept, rescaleSlope, suvbw } = scalingParameters;\n minAfterScale = rescaleSlope * minBeforeScale + rescaleIntercept;\n maxAfterScale = rescaleSlope * maxBeforeScale + rescaleIntercept;\n\n if (suvbw) {\n minAfterScale = minAfterScale * suvbw;\n maxAfterScale = maxAfterScale * suvbw;\n }\n }\n } else if (disableScale) {\n imageFrame.preScale = {\n enabled: true,\n scaled: false,\n };\n\n minAfterScale = minBeforeScale;\n maxAfterScale = maxBeforeScale;\n }\n\n imageFrame.pixelData = pixelDataArray;\n imageFrame.smallestPixelValue = minAfterScale;\n imageFrame.largestPixelValue = maxAfterScale;\n\n const end = new Date().getTime();\n imageFrame.decodeTimeInMS = end - start;\n\n return imageFrame;\n}\n\nfunction _handleTargetBuffer(\n options,\n imageFrame,\n typedArrayConstructors,\n pixelDataArray\n) {\n const {\n arrayBuffer,\n type,\n offset: rawOffset = 0,\n length: rawLength,\n rows,\n } = options.targetBuffer;\n\n const TypedArrayConstructor = typedArrayConstructors[type];\n\n if (!TypedArrayConstructor) {\n throw new Error(`target array ${type} is not supported, or doesn't exist.`);\n }\n\n if (rows && rows != imageFrame.rows) {\n scaleImageFrame(imageFrame, options.targetBuffer, TypedArrayConstructor);\n }\n const imageFrameLength = imageFrame.pixelDataLength;\n\n const offset = rawOffset;\n const length =\n rawLength !== null && rawLength !== undefined\n ? rawLength\n : imageFrameLength - offset;\n\n const imageFramePixelData = imageFrame.pixelData;\n\n if (length !== imageFramePixelData.length) {\n throw new Error(\n `target array for image does not have the same length (${length}) as the decoded image length (${imageFramePixelData.length}).`\n );\n }\n\n // TypedArray.Set is api level and ~50x faster than copying elements even for\n // Arrays of different types, which aren't simply memcpy ops.\n const typedArray = arrayBuffer\n ? new TypedArrayConstructor(arrayBuffer, offset, length)\n : new TypedArrayConstructor(length);\n\n typedArray.set(imageFramePixelData, 0);\n\n // If need to scale, need to scale correct array.\n pixelDataArray = typedArray;\n return pixelDataArray;\n}\n\nfunction _handlePreScaleSetup(\n options,\n minBeforeScale,\n maxBeforeScale,\n imageFrame\n) {\n const scalingParameters = options.preScale.scalingParameters;\n _validateScalingParameters(scalingParameters);\n\n const { rescaleSlope, rescaleIntercept } = scalingParameters;\n const areSlopeAndInterceptNumbers =\n typeof rescaleSlope === 'number' && typeof rescaleIntercept === 'number';\n\n let scaledMin = minBeforeScale;\n let scaledMax = maxBeforeScale;\n\n if (areSlopeAndInterceptNumbers) {\n scaledMin = rescaleSlope * minBeforeScale + rescaleIntercept;\n scaledMax = rescaleSlope * maxBeforeScale + rescaleIntercept;\n }\n\n return _getDefaultPixelDataArray(scaledMin, scaledMax, imageFrame);\n}\n\nfunction _getDefaultPixelDataArray(min, max, imageFrame) {\n const TypedArrayConstructor = getPixelDataTypeFromMinMax(min, max);\n // @ts-ignore\n const typedArray = new TypedArrayConstructor(imageFrame.pixelData.length);\n typedArray.set(imageFrame.pixelData, 0);\n\n return typedArray;\n}\n\nfunction _validateScalingParameters(scalingParameters) {\n if (!scalingParameters) {\n throw new Error(\n 'options.preScale.scalingParameters must be defined if preScale.enabled is true, and scalingParameters cannot be derived from the metadata providers.'\n );\n }\n}\n\nfunction createDestinationImage(\n imageFrame,\n targetBuffer,\n TypedArrayConstructor\n) {\n const { samplesPerPixel } = imageFrame;\n const { rows, columns } = targetBuffer;\n const typedLength = rows * columns * samplesPerPixel;\n const pixelData = new TypedArrayConstructor(typedLength);\n const bytesPerPixel = pixelData.byteLength / typedLength;\n return {\n pixelData,\n rows,\n columns,\n frameInfo: {\n ...imageFrame.frameInfo,\n rows,\n columns,\n },\n imageInfo: {\n ...imageFrame.imageInfo,\n rows,\n columns,\n bytesPerPixel,\n },\n };\n}\n\n/** Scales the image frame, updating the frame in place with a new scaled\n * version of it (in place modification)\n */\nfunction scaleImageFrame(imageFrame, targetBuffer, TypedArrayConstructor) {\n const dest = createDestinationImage(\n imageFrame,\n targetBuffer,\n TypedArrayConstructor\n );\n const { scalingType = 'replicate' } = targetBuffer;\n imageUtils[scalingType](imageFrame, dest);\n Object.assign(imageFrame, dest);\n return imageFrame;\n}\n\nconst obj = {\n decodeTask({\n imageFrame,\n transferSyntax,\n decodeConfig,\n options,\n pixelData,\n callbackFn,\n }) {\n return decodeImageFrame(\n imageFrame,\n transferSyntax,\n pixelData,\n decodeConfig,\n options,\n callbackFn\n );\n },\n};\n\nexpose(obj);\n","/**\n * Performs a bilinear scaling, both scaling up and scaling down.\n * Only supports 1 channel per pixel (grayscale)\n * @param src - src image frame to get map from\n * @param dest - dest image frame to write to\n * @returns destination data buffer\n */\nexport default function bilinear(src, dest) {\n const { rows: srcRows, columns: srcColumns, data: srcData } = src;\n const { rows, columns, data } = dest;\n\n const xSrc1Off = [];\n const xSrc2Off = [];\n const xFrac = [];\n\n // Precompute offsets\n for (let x = 0; x < columns; x++) {\n const xSrc = (x * (srcColumns - 1)) / (columns - 1);\n xSrc1Off[x] = Math.floor(xSrc);\n xSrc2Off[x] = Math.min(xSrc1Off[x] + 1, srcColumns - 1);\n xFrac[x] = xSrc - xSrc1Off[x];\n // console.log(\"x src info\", x, xSrc, xFrac[x]);\n }\n\n for (let y = 0; y < rows; y++) {\n const ySrc = (y * (srcRows - 1)) / (rows - 1);\n const ySrc1Off = Math.floor(ySrc) * srcColumns;\n // Get the second offset, but duplicate the last row so the lookup works\n const ySrc2Off = Math.min(\n ySrc1Off + srcColumns,\n (srcRows - 1) * srcColumns\n );\n const yFrac = ySrc - Math.floor(ySrc);\n const yFracInv = 1 - yFrac;\n const yOff = y * columns;\n\n for (let x = 0; x < columns; x++) {\n // TODO - put the pXY into the data calculation\n const p00 = srcData[ySrc1Off + xSrc1Off[x]];\n const p10 = srcData[ySrc1Off + xSrc2Off[x]];\n const p01 = srcData[ySrc2Off + xSrc1Off[x]];\n const p11 = srcData[ySrc2Off + xSrc2Off[x]];\n const xFracInv = 1 - xFrac[x];\n\n // console.log(\"bilinear for\", x,y, \"from\", ySrc1Off + xSrc1Off[x], ySrc1Off + xSrc2Off[x], ySrc2Off + xSrc1Off[x], ySrc2Off + xSrc2Off[x]);\n // console.log(\"values\", p00, p10, p01, p11);\n // console.log(\"fractions\", xFracInv, xFrac[x], yFracInv, yFrac);\n\n data[yOff + x] =\n (p00 * xFracInv + p10 * xFrac[x]) * yFracInv +\n (p01 * xFracInv + p11 * xFrac[x]) * yFrac;\n }\n }\n return data;\n}\n","/** Handle replicate scaling. Use this function for samplesPerPixel>1 */\n\nexport default function replicate(src, dest) {\n const {\n rows: srcRows,\n columns: srcColumns,\n pixelData: srcData,\n samplesPerPixel = 1,\n } = src;\n const { rows, columns, pixelData } = dest;\n\n const xSrc1Off = [];\n\n // Precompute offsets\n for (let x = 0; x < columns; x++) {\n const xSrc = (x * (srcColumns - 1)) / (columns - 1);\n xSrc1Off[x] = Math.floor(xSrc) * samplesPerPixel;\n // console.log(\"x src info\", x, xSrc, xFrac[x]);\n }\n\n for (let y = 0; y < rows; y++) {\n const ySrc = (y * (srcRows - 1)) / (rows - 1);\n const ySrc1Off = Math.floor(ySrc) * srcColumns * samplesPerPixel;\n const yOff = y * columns;\n\n for (let x = 0; x < columns; x++) {\n for (let sample = 0; sample < samplesPerPixel; sample++) {\n pixelData[yOff + x + sample] = srcData[ySrc1Off + xSrc1Off[x] + sample];\n }\n }\n }\n return pixelData;\n}\n","export default function (photoMetricInterpretation: string): boolean {\n return (\n photoMetricInterpretation === 'RGB' ||\n photoMetricInterpretation === 'PALETTE COLOR' ||\n photoMetricInterpretation === 'YBR_FULL' ||\n photoMetricInterpretation === 'YBR_FULL_422' ||\n photoMetricInterpretation === 'YBR_PARTIAL_422' ||\n photoMetricInterpretation === 'YBR_PARTIAL_420' ||\n photoMetricInterpretation === 'YBR_RCT' ||\n photoMetricInterpretation === 'YBR_ICT'\n );\n}\n","import type { Types } from '@cornerstonejs/core';\n\nexport default function scaleArray(\n array: Types.PixelDataTypedArray,\n scalingParameters\n): boolean {\n const arrayLength = array.length;\n const { rescaleSlope, rescaleIntercept, suvbw } = scalingParameters;\n\n if (scalingParameters.modality === 'PT' && typeof suvbw === 'number') {\n for (let i = 0; i < arrayLength; i++) {\n array[i] = suvbw * (array[i] * rescaleSlope + rescaleIntercept);\n }\n } else {\n for (let i = 0; i < arrayLength; i++) {\n array[i] = array[i] * rescaleSlope + rescaleIntercept;\n }\n }\n\n return true;\n}\n","import type { Types } from '@cornerstonejs/core';\n\nexport default function getPixelDataTypeFromMinMax(\n min: number,\n max: number\n): Types.PixelDataTypedArray {\n let pixelDataType;\n if (Number.isInteger(min) && Number.isInteger(max)) {\n if (min >= 0) {\n if (max <= 255) {\n pixelDataType = Uint8Array;\n } else if (max <= 65535) {\n pixelDataType = Uint16Array;\n }\n } else {\n if (min >= -128 && max <= 127) {\n pixelDataType = Int8Array;\n } else if (min >= -32768 && max <= 32767) {\n pixelDataType = Int16Array;\n }\n }\n }\n\n return pixelDataType || Float32Array;\n}\n"],"names":["root","factory","exports","module","define","amd","this","leafPrototypes","getProto","_scriptDir","CharLSWASM","document","currentScript","src","undefined","readyPromiseResolve","readyPromiseReject","Module","Promise","resolve","reject","read_","readAsync","readBinary","moduleOverrides","Object","assign","arguments_","ENVIRONMENT_IS_WEB","window","ENVIRONMENT_IS_WORKER","importScripts","ENVIRONMENT_IS_NODE","process","versions","node","scriptDirectory","fs","nodePath","dirname","__dirname","filename","binary","isFileURI","URL","normalize","readFileSync","ret","buffer","Uint8Array","onload","onerror","readFile","err","data","length","replace","slice","ex","ExitStatus","reason","self","location","href","indexOf","substr","lastIndexOf","url","xhr","XMLHttpRequest","open","send","responseText","responseType","response","status","console","log","bind","wasmBinary","warn","wasmMemory","WebAssembly","abort","HEAP8","HEAPU8","HEAP16","HEAPU16","HEAP32","HEAPU32","HEAPF32","HEAPF64","ABORT","UTF8Decoder","TextDecoder","UTF8ToString","ptr","maxBytesToRead","heapOrArray","idx","endIdx","endPtr","decode","subarray","str","u0","u1","u2","String","fromCharCode","ch","UTF8ArrayToString","stringToUTF8","outPtr","maxBytesToWrite","heap","outIdx","startIdx","i","u","charCodeAt","stringToUTF8Array","updateGlobalBufferAndViews","buf","Int8Array","Int16Array","Int32Array","Uint16Array","Uint32Array","Float32Array","Float64Array","wasmTable","__ATPRERUN__","__ATINIT__","__ATPOSTRUN__","runDependencies","runDependencyWatcher","dependenciesFulfilled","what","e","RuntimeError","wasmBinaryFile","path","dataURIPrefix","isDataURI","startsWith","getBinary","file","name","message","callRuntimeCallbacks","callbacks","shift","ExceptionInfo","excPtr","set_type","type","get_type","set_destructor","destructor","get_destructor","set_refcount","refcount","set_caught","caught","get_caught","set_rethrown","rethrown","get_rethrown","init","set_adjusted_ptr","add_ref","value","release_ref","prev","adjustedPtr","get_adjusted_ptr","get_exception_ptr","___cxa_is_pointer_type","adjusted","structRegistrations","runDestructors","destructors","pop","del","simpleReadValueFromPointer","pointer","awaitingDependencies","registeredTypes","typeDependencies","char_0","char_9","makeLegalFunctionName","f","createNamedFunction","body","Function","extendError","baseErrorType","errorName","errorClass","stack","Error","toString","prototype","create","constructor","InternalError","throwInternalError","whenDependentTypesAreResolved","myTypes","dependentTypes","getTypeConverters","onComplete","typeConverters","myTypeConverters","registerType","forEach","Array","unregisteredTypes","registered","dt","hasOwnProperty","push","getShiftFromSize","size","TypeError","embind_charCodes","readLatin1String","c","BindingError","throwBindingError","rawType","registeredInstance","options","ignoreDuplicateRegistrations","cb","ClassHandle_isAliasOf","other","ClassHandle","leftClass","$$","ptrType","registeredClass","left","rightClass","right","baseClass","upcast","throwInstanceAlreadyDeleted","obj","finalizationRegistry","detachFinalizer","handle","releaseClassHandle","count","smartPtr","smartPtrType","rawDestructor","runDestructor","downcastPointer","ptrClass","desiredClass","rv","downcast","registeredPointers","getInheritedInstanceCount","keys","registeredInstances","getLiveInheritedInstances","k","deletionQueue","flushPendingDeletes","deleteScheduled","delayFunction","setDelayFunction","fn","getInheritedInstance","class_","getBasestPointer","makeClassHandle","record","attachFinalizer","RegisteredPointer_fromWireType","rawPointer","getPointee","makeDefaultHandle","isSmartPointer","instancePrototype","pointeeType","toType","actualType","getActualType","registeredPointerRecord","call","isConst","constPointerType","pointerType","dp","FinalizationRegistry","info","register","unregister","ClassHandle_clone","preservePointerOnDelete","o","clone","getPrototypeOf","ClassHandle_delete","ClassHandle_isDeleted","ClassHandle_deleteLater","ensureOverloadTable","proto","methodName","humanName","overloadTable","prevFunc","arguments","apply","argCount","exposePublicSymbol","numArguments","RegisteredClass","pureVirtualFunctions","upcastPointer","constNoSmartPtrRawPointerToWireType","isReference","embindRepr","handleClass","genericPointerToWireType","rawConstructor","sharingPolicy","clonedHandle","rawShare","Emval","toHandle","nonConstNoSmartPtrRawPointerToWireType","RegisteredPointer_getPointee","rawGetPointee","RegisteredPointer_destructor","RegisteredPointer_deleteObject","RegisteredPointer","destructorFunction","replacePublicSymbol","wasmTableMirror","getWasmTableEntry","funcPtr","func","get","dynCall","sig","args","includes","concat","dynCallLegacy","embind__requireFunction","signature","rawFunction","argCache","fp","UnboundTypeError","getTypeName","___getTypeName","_free","throwUnboundTypeError","types","unboundTypes","seen","visit","map","join","heap32VectorToArray","firstElement","array","craftInvokerFunction","argTypes","classType","cppInvokerFunc","cppTargetFunc","isClassMethodFunc","needsDestructorStack","returns","argsList","argsListWired","invokerFnBody","dtorStack","args1","args2","paramName","argumentList","dummy","r","new_","emval_free_list","emval_handle_array","__emval_decref","count_emval_handles","get_first_emval","toValue","v","t","floatReadValueFromPointer","integerReadValueFromPointer","signed","UTF16Decoder","UTF16ToString","maxIdx","codeUnit","stringToUTF16","startPtr","numCharsToWrite","lengthBytesUTF16","UTF32ToString","utf32","stringToUTF32","lengthBytesUTF32","len","emval_symbols","emval_get_global","globalThis","requireRegisteredType","impl","emval_newers","emscripten_realloc_buffer","grow","byteLength","codes","embind_init_charCodes","calledRun","asmLibraryArg","structType","reg","fieldRecords","fields","field","getterReturnType","setterArgumentType","fieldTypes","fieldName","getter","getterContext","setter","setterContext","read","write","primitiveType","minRange","maxRange","trueValue","falseValue","wt","rawPointerType","rawConstPointerType","baseClassRawType","getActualTypeSignature","upcastSignature","downcastSignature","destructorSignature","legalFunctionName","base","basePrototype","constructor_body","referenceConverter","pointerConverter","constPointerConverter","rawClassType","rawArgTypesAddr","invokerSignature","invoker","text","rawArgTypes","splice","rawInvoker","context","isPureVirtual","unboundTypesHandler","Symbol","substring","method","className","memberFunction","invokerArgsArray","fromWireType","bitshift","isUnsignedType","dataTypeIndex","TA","decodeMemoryView","stdStringIsUTF8","payload","decodeStartPtr","currentBytePtr","stringSegment","a","ArrayBuffer","valueIsOfTypeString","Uint8ClampedArray","lengthBytesUTF8","_malloc","charCode","charSize","decodeString","encodeString","getHeap","lengthBytesUTF","HEAP","constructorSignature","getterSignature","setterSignature","isVoid","symbol","address","newer","functionBody","craftEmvalAllocator","arg","dest","num","copyWithin","requestedSize","x","multiple","oldSize","maxHeapSize","cutDown","overGrownHeapSize","Math","min","max","receiveInstance","instance","unshift","clearInterval","callback","removeRunDependency","receiveInstantiationResult","result","instantiateArrayBuffer","receiver","fetch","credentials","then","catch","getBinaryPromise","instantiate","instantiateStreaming","createWasm","stackSave","stackRestore","stackAlloc","run","doRun","postRun","preRun","setTimeout","ident","returnType","opts","toC","arr","set","writeArrayToMemory","getCFunc","cArgs","converter","Boolean","convertReturnValue","onDone","runCaller","ready","libjpegturbowasm_decode","thisProgram","quit_","toThrow","keepRuntimeAlive","out","noExitRuntime","ENV","getEnvStrings","strings","env","navigator","languages","_exit","implicit","code","printCharBuffers","printChar","stream","curr","Infinity","__environ","environ_buf","bufSize","string","dontAddNull","writeAsciiToMemory","penviron_count","penviron_buf_size","fd","offset_low","offset_high","whence","newOffset","iov","iovcnt","pnum","j","index","a1","sp","_setThrew","a2","a3","OpenJPEGWASM","exceptionCaught","exceptionLast","exception_addRef","___cxa_free_exception","exception_decRef","thrown","setTempRet0","thrownType","caughtType","adjusted_ptr_addr","___cxa_can_catch","a4","a5","a6","a7","a8","a9","a10","ColorSpace","Unkown","Grayscale","AdobeRGB","RGB","CYMK","JpegImage","dctZigZag","dctCos1","dctSin1","dctCos3","dctSin3","dctCos6","dctSin6","dctSqrt2","dctSqrt1d2","buildHuffmanTable","codeLengths","values","children","q","p","getBlockBufferOffset","component","row","col","blocksPerLine","decodeScan","offset","frame","components","resetInterval","spectralStart","spectralEnd","successivePrev","successive","precision","samplesPerLine","scanLines","mcusPerLine","progressive","startOffset","maxH","maxV","bitsData","bitsCount","readBit","nextByte","decodeHuffman","tree","bit","receive","n","receiveAndExtend","eobrun","successiveACNextValue","successiveACState","decodeMcu","mcu","mcuCol","h","decodeBlock","decodeFn","componentsLength","huffmanTableDC","diff","blockData","pred","rs","huffmanTableAC","s","z","marker","mcuExpected","blocksPerColumn","mcusPerColumn","quantizeAndInverse","blockBufferOffset","v0","v1","v2","v3","v4","v5","v6","v7","qt","quantizationTable","bitConversion","buildComponentData","computationBuffer","blockRow","blockCol","clampToUint8","setPrototypeOf","load","handleData","parse","atob","readUint16","readDataBlock","prepareComponents","ceil","blocksPerLineForMcu","blocksBufferSize","jfif","adobe","quantizationTables","huffmanTablesAC","huffmanTablesDC","fileMarker","l","appData","version","major","minor","densityUnits","xDensity","yDensity","thumbWidth","thumbHeight","thumbData","flags0","flags1","transformCode","quantizationTablesEnd","quantizationTableSpec","tableData","extended","componentIds","componentId","componentsCount","qId","quantizationTableId","huffmanLength","huffmanTableSpec","codeLengthSum","huffmanValues","selectorsCount","componentIndex","tableSpec","successiveApproximation","processed","width","height","colorspace","Unknown","output","scaleX","scaleY","getData16","componentScaleX","componentScaleY","y","numComponents","lineData","lineOffset","scanLine","bufferOffset","sample","getData","Y","Cb","Cr","C","M","R","G","B","colorTransform","dataLength","global","jpeg","require","lossless","ComponentSpec","hSamp","quantTableSel","vSamp","DataStream","get16","get8","HuffmanTable","QuantizationTable","ScanHeader","FrameHeader","Utils","Decoder","numBytes","huffTable","quantTable","scan","DU","createArray","HuffTab","IDCT_Source","nBlock","acTab","dcTab","qTab","markerIndex","numComp","restartInterval","selection","xDim","yDim","xLoc","yLoc","outputData","restarting","mask","IDCT_P","TABLE","MAX_HUFFMAN_SUBTREE","MSB","RESTART_MARKER_BEGIN","RESTART_MARKER_END","decompress","current","compN","mcuNum","scanNum","temp","readNumber","readApp","readComment","parseInt","getValueRGB","setValueRGB","outputRGB","getValue8","setValue8","outputSingle","getValue16","setValue16","selector","select2","select3","select4","select5","select6","select7","select1","scanComps","quantTables","scanCompSel","dcTabSel","acTabSel","dimX","dimY","decodeUnit","decodeSingle","decodeRGB","compOffset","getPreviousX","getPreviousY","getPreviousXY","actab","dctab","qtab","ctrC","getHuffmanValue","getn","nRestart","table","input","PRED","isLastPixel","val","DataView","setInt16","sb","th","tc","buildHuffTable","tab","L","V","currentTable","ScanComponent","tq","enhanceQuantizationTable","ah","al","makeCRCTable","crcTable","crc32","dataView","uint8view","crc","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","m","__esModule","d","mode","ns","def","getOwnPropertyNames","key","definition","defineProperty","enumerable","prop","toStringTag","b","proxyMarker","createEndpoint","releaseProxy","finalizer","throwMarker","isObject","proxyTransferHandler","canHandle","serialize","port1","port2","MessageChannel","expose","deserialize","port","start","createProxy","target","transferHandlers","Map","serialized","isError","ep","allowedOrigins","addEventListener","ev","origin","allowedOrigin","RegExp","test","isAllowedOrigin","id","fromWireValue","returnValue","parent","reduce","rawValue","proxy","transfers","transferCache","transfer","wireValue","transferables","toWireValue","postMessage","removeEventListener","closeEndPoint","error","endpoint","isMessagePort","close","throwIfProxyReleased","isReleased","releaseEndpoint","requestResponseMessage","proxyCounter","WeakMap","proxyFinalizers","newCount","isProxyReleased","Proxy","_target","unregisterProxy","_thisArg","rawArgumentList","last","processArguments","construct","registerProxy","handler","serializedValue","msg","fill","floor","random","Number","MAX_SAFE_INTEGER","async","imageFrame","pixelData","arrayBuffer","byteOffset","bitsAllocated","pixelRepresentation","planarConfiguration","frameData","frameSize","rows","columns","outFrame","samplesPerPixel","header","outIndex","numSegments","getInt32","inIndex","maxIndex","endOfSegment","decode8Planar","decode8","highByte","decode16","libjpegTurboWasm","local","codec","decoder","compressedImageFrame","imageInfo","libjpegTurboModule","libjpegTurboFactory","locateFile","endsWith","JPEGDecoder","initLibjpegTurbo","getEncodedBuffer","frameInfo","getFrameInfo","decodedPixelsInWASM","getDecodedBuffer","encodedImageInfo","bitsPerPixel","bitsPerSample","bytesPerPixel","componentsPerPixel","componentCount","decodedBuffer","isSigned","getPixelData","encodeOptions","decodeConfig","byteOutput","decompressedData","charlsWasm","charlsModule","charlsFactory","JpegLSDecoder","initialize","interleaveMode","getInterleaveMode","nearLossless","getNearLossless","exception","getExceptionMessage","openjpegWasm","openJpegModule","openJpegFactory","J2KDecoder","encodedBufferInWASM","decodedBufferInWASM","imageOffset","getImageOffset","numDecompositions","getNumDecompositions","numLayers","getNumLayers","progessionOrder","getProgressionOrder","reversible","getIsReversible","blockDimensions","getBlockDimensions","tileSize","getTileSize","tileOffset","getTileOffset","getColorSpace","decodedSize","toLocaleString","compressionRatio","toFixed","openjphWasm","openJphModule","openJphFactory","HTJ2KDecoder","decodeLevel","decodeSubResolution","decompositionLevel","frameWidth","frameHeight","calculateSizeAtDecompositionLevel","pixelDataArrayBuffer","storedPixelData","storedPixel","numPixels","imageUtils","bilinear","srcRows","srcColumns","srcData","xSrc1Off","xSrc2Off","xFrac","xSrc","ySrc","ySrc1Off","ySrc2Off","yFrac","yFracInv","yOff","p00","p10","p01","p11","xFracInv","replicate","decodeImageFrame","transferSyntax","callbackFn","Date","getTime","decodePromise","decodeLittleEndian","decodeBigEndian","decodeRLE","decodeJPEGBaseline8Bit","decodeJPEGBaseline12Bit","decodeJPEGLossless","decodeJPEGLS","decodeJPEG2000","decodeHTJ2K","postProcessed","shouldShift","bitsStored","pixelDataArray","pixelDataLength","minBeforeScale","maxBeforeScale","getMinMax","typedArrayConstructors","targetBuffer","canRenderFloat","allowFloatRendering","invalidType","photoMetricInterpretation","photometricInterpretation","willScale","preScale","enabled","hasFloatRescale","scalingParameters","some","isInteger","disableScale","rawOffset","rawLength","TypedArrayConstructor","typedLength","createDestinationImage","scalingType","scaleImageFrame","imageFrameLength","imageFramePixelData","typedArray","_handleTargetBuffer","_validateScalingParameters","rescaleSlope","rescaleIntercept","scaledMin","scaledMax","_getDefaultPixelDataArray","_handlePreScaleSetup","minAfterScale","maxAfterScale","arrayLength","suvbw","modality","applyModalityLUT","scaled","smallestPixelValue","largestPixelValue","end","decodeTimeInMS","postProcessDecodedPixels","pixelDataType","getPixelDataTypeFromMinMax","decodeTask"],"sourceRoot":""}
|