blue-chestnut-solar-expert 0.0.67 → 0.0.68
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/stencil-library/assets/tutorial4.mp4 +0 -0
- package/dist/{collection/config.js → stencil-library/config-CWfV1nKn.js} +10 -4
- package/dist/stencil-library/config-CWfV1nKn.js.map +1 -0
- package/dist/stencil-library/constants-hboFofU4.js +1522 -0
- package/dist/stencil-library/constants-hboFofU4.js.map +1 -0
- package/dist/stencil-library/decoder-DNOvLSaS.js +39 -0
- package/dist/stencil-library/decoder-DNOvLSaS.js.map +1 -0
- package/dist/stencil-library/deflate-0Vdd6-55.js +21 -0
- package/dist/{esm/deflate-DHgPf9CO.js.map → stencil-library/deflate-0Vdd6-55.js.map} +1 -1
- package/dist/stencil-library/eraser-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-CL74Q4VR.js → stencil-library/eraser-icon.entry.js} +9 -27
- package/dist/stencil-library/eraser-icon.entry.js.map +1 -0
- package/dist/stencil-library/house-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-D8w3bTPO.js → stencil-library/house-icon.entry.js} +9 -27
- package/dist/stencil-library/house-icon.entry.js.map +1 -0
- package/dist/{components/loading-widget.js → stencil-library/icon-selector.entry.esm.js.map} +1 -38
- package/dist/stencil-library/icon-selector.entry.js +47 -0
- package/dist/stencil-library/icon-selector.entry.js.map +1 -0
- package/dist/stencil-library/index-CChkgM3J.js +414 -0
- package/dist/stencil-library/index-CChkgM3J.js.map +1 -0
- package/dist/stencil-library/index-ICfDNUMe.js +4172 -0
- package/dist/stencil-library/index-ICfDNUMe.js.map +1 -0
- package/dist/stencil-library/index.esm.js +13 -1
- package/dist/stencil-library/index.esm.js.map +1 -1
- package/dist/{esm/jpeg-CJLm1GkA.js → stencil-library/jpeg-Dd5nnHR5.js} +11 -3
- package/dist/stencil-library/jpeg-Dd5nnHR5.js.map +1 -0
- package/dist/{components/p-BcVa4_YP.js → stencil-library/lerc-7W4E8EBs.js} +27 -1981
- package/dist/stencil-library/lerc-7W4E8EBs.js.map +1 -0
- package/dist/{esm → stencil-library}/loading-widget.entry.js +3 -3
- package/dist/{components/p-P28NBglk.js.map → stencil-library/loading-widget.entry.js.map} +1 -1
- package/dist/{esm/lzw-DaOzWJUD.js → stencil-library/lzw--P4c0ZHH.js} +10 -4
- package/dist/stencil-library/lzw--P4c0ZHH.js.map +1 -0
- package/dist/stencil-library/map-draw-Cx9WZoKH.js +25567 -0
- package/dist/stencil-library/map-draw-Cx9WZoKH.js.map +1 -0
- package/dist/stencil-library/map-draw.entry.esm.js.map +1 -0
- package/dist/stencil-library/map-draw.entry.js +12 -0
- package/dist/stencil-library/map-draw.entry.js.map +1 -0
- package/dist/stencil-library/map-selector.entry.esm.js.map +1 -0
- package/dist/{components/p-C5QieOat.js → stencil-library/map-selector.entry.js} +164 -96
- package/dist/stencil-library/map-selector.entry.js.map +1 -0
- package/dist/{components/loading-widget.js.map → stencil-library/marker-icon.entry.esm.js.map} +1 -1
- package/dist/{components/p-Umz6nJIv.js → stencil-library/marker-icon.entry.js} +9 -27
- package/dist/stencil-library/marker-icon.entry.js.map +1 -0
- package/dist/stencil-library/move-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-FdEV2qPo.js → stencil-library/move-icon.entry.js} +9 -27
- package/dist/stencil-library/move-icon.entry.js.map +1 -0
- package/dist/{components/p-DTXeHbuh.js.map → stencil-library/octagon-minus-icon.entry.esm.js.map} +1 -1
- package/dist/{components/p-BJLO76Yi.js → stencil-library/octagon-minus-icon.entry.js} +9 -27
- package/dist/stencil-library/octagon-minus-icon.entry.js.map +1 -0
- package/dist/{components/p-ByX6QP-E.js → stencil-library/packbits-X3R_utTs.js} +9 -3
- package/dist/stencil-library/packbits-X3R_utTs.js.map +1 -0
- package/dist/stencil-library/pako.esm-CPorU236.js +6881 -0
- package/dist/{esm/pako.esm-B5WTRCh8.js.map → stencil-library/pako.esm-CPorU236.js.map} +1 -1
- package/dist/{components/p-B4X-RCW0.js.map → stencil-library/polygon-buttons.entry.esm.js.map} +1 -1
- package/dist/{cjs/loading-widget.cjs.entry.js → stencil-library/polygon-buttons.entry.js} +16 -10
- package/dist/stencil-library/polygon-buttons.entry.js.map +1 -0
- package/dist/{cjs/loading-widget.cjs.entry.js.map → stencil-library/polygon-information.entry.esm.js.map} +1 -1
- package/dist/{components/p-BFJHTJPM.js → stencil-library/polygon-information.entry.js} +13 -70
- package/dist/stencil-library/polygon-information.entry.js.map +1 -0
- package/dist/stencil-library/raw-BxukYehy.js +20 -0
- package/dist/stencil-library/raw-BxukYehy.js.map +1 -0
- package/dist/stencil-library/search-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-DBwr8xSB.js → stencil-library/search-icon.entry.js} +9 -27
- package/dist/stencil-library/{p-ab0f2031.entry.js → search-icon.entry.js.map} +1 -2
- package/dist/stencil-library/settings-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-DTXeHbuh.js → stencil-library/settings-icon.entry.js} +9 -27
- package/dist/stencil-library/settings-icon.entry.js.map +1 -0
- package/dist/stencil-library/settings-modal.entry.esm.js.map +1 -0
- package/dist/{components/p-B4X-RCW0.js → stencil-library/settings-modal.entry.js} +20 -38
- package/dist/stencil-library/settings-modal.entry.js.map +1 -0
- package/dist/stencil-library/solar-expert.entry.esm.js.map +1 -0
- package/dist/{components/solar-expert.js → stencil-library/solar-expert.entry.js} +14 -150
- package/dist/{components/p-i1uLweD0.js.map → stencil-library/solar-expert.entry.js.map} +1 -1
- package/dist/stencil-library/solar-system-form.entry.esm.js.map +1 -0
- package/dist/stencil-library/solar-system-form.entry.js +553 -0
- package/dist/stencil-library/solar-system-form.entry.js.map +1 -0
- package/dist/stencil-library/stencil-library.esm.js +52 -1
- package/dist/stencil-library/stencil-library.esm.js.map +1 -1
- package/dist/{components/p-eDwaXClX.js → stencil-library/store-CcqrFuBK.js} +24 -3
- package/dist/stencil-library/store-CcqrFuBK.js.map +1 -0
- package/dist/stencil-library/toast-notification.entry.esm.js.map +1 -0
- package/dist/{components/p-P28NBglk.js → stencil-library/toast-notification.entry.js} +9 -30
- package/dist/stencil-library/toast-notification.entry.js.map +1 -0
- package/dist/stencil-library/tool-box.entry.esm.js.map +1 -0
- package/dist/{components/p-i1uLweD0.js → stencil-library/tool-box.entry.js} +27 -35
- package/dist/stencil-library/tool-box.entry.js.map +1 -0
- package/dist/{collection/utils/render/tools.js → stencil-library/tools-BNYKV5H5.js} +14 -8
- package/dist/stencil-library/tools-BNYKV5H5.js.map +1 -0
- package/dist/stencil-library/tutorial-component.entry.esm.js.map +1 -0
- package/dist/{components/p-Dzl6kfPI.js → stencil-library/tutorial-component.entry.js} +42 -35
- package/dist/stencil-library/tutorial-component.entry.js.map +1 -0
- package/dist/stencil-library/undo-icon.entry.esm.js.map +1 -0
- package/dist/{components/p-waOPoUcA.js → stencil-library/undo-icon.entry.js} +9 -27
- package/dist/stencil-library/undo-icon.entry.js.map +1 -0
- package/dist/{collection/utils/utils.js → stencil-library/utils-BCUZxI9u.js} +9 -3
- package/dist/stencil-library/utils-BCUZxI9u.js.map +1 -0
- package/dist/{esm/webimage-BiHardhv.js → stencil-library/webimage-CBrfoxHM.js} +9 -3
- package/dist/{esm/webimage-BiHardhv.js.map → stencil-library/webimage-CBrfoxHM.js.map} +1 -1
- package/dist/types/components/map-draw/map-draw.d.ts +5 -0
- package/dist/types/components/map-draw/tutorial-component.d.ts +7 -0
- package/dist/types/components.d.ts +4 -0
- package/dist/types/types/lang.d.ts +7 -0
- package/package.json +1 -1
- package/dist/cjs/app-globals-I24yU8do.js +0 -10
- package/dist/cjs/app-globals-I24yU8do.js.map +0 -1
- package/dist/cjs/basedecoder-CQuzfSgz.js +0 -116
- package/dist/cjs/basedecoder-CQuzfSgz.js.map +0 -1
- package/dist/cjs/deflate-AzGzQSW2.js +0 -17
- package/dist/cjs/deflate-AzGzQSW2.js.map +0 -1
- package/dist/cjs/eraser-icon_19.cjs.entry.js +0 -31
- package/dist/cjs/eraser-icon_19.cjs.entry.js.map +0 -1
- package/dist/cjs/index-HgRXF6kp.js +0 -1470
- package/dist/cjs/index-HgRXF6kp.js.map +0 -1
- package/dist/cjs/index.cjs.js +0 -7
- package/dist/cjs/index.cjs.js.map +0 -1
- package/dist/cjs/jpeg-Bx3bTm32.js +0 -904
- package/dist/cjs/jpeg-Bx3bTm32.js.map +0 -1
- package/dist/cjs/lerc-v64rYVDy.js +0 -4427
- package/dist/cjs/lerc-v64rYVDy.js.map +0 -1
- package/dist/cjs/loader.cjs.js +0 -18
- package/dist/cjs/loader.cjs.js.map +0 -1
- package/dist/cjs/loading-widget.entry.cjs.js.map +0 -1
- package/dist/cjs/lzw-BmFug486.js +0 -140
- package/dist/cjs/lzw-BmFug486.js.map +0 -1
- package/dist/cjs/packbits-CYx9fB0v.js +0 -35
- package/dist/cjs/packbits-CYx9fB0v.js.map +0 -1
- package/dist/cjs/pako.esm-0mKI6Jik.js +0 -3243
- package/dist/cjs/pako.esm-0mKI6Jik.js.map +0 -1
- package/dist/cjs/raw-DC82yoyr.js +0 -16
- package/dist/cjs/raw-DC82yoyr.js.map +0 -1
- package/dist/cjs/stencil-library.cjs.js +0 -30
- package/dist/cjs/stencil-library.cjs.js.map +0 -1
- package/dist/cjs/webimage-Dc0t2xAB.js +0 -49
- package/dist/cjs/webimage-Dc0t2xAB.js.map +0 -1
- package/dist/collection/collection-manifest.json +0 -31
- package/dist/collection/components/icons/eraser.js +0 -64
- package/dist/collection/components/icons/eraser.js.map +0 -1
- package/dist/collection/components/icons/house.js +0 -64
- package/dist/collection/components/icons/house.js.map +0 -1
- package/dist/collection/components/icons/icon.js +0 -108
- package/dist/collection/components/icons/icon.js.map +0 -1
- package/dist/collection/components/icons/marker.js +0 -64
- package/dist/collection/components/icons/marker.js.map +0 -1
- package/dist/collection/components/icons/move.js +0 -64
- package/dist/collection/components/icons/move.js.map +0 -1
- package/dist/collection/components/icons/octagonMinus.js +0 -64
- package/dist/collection/components/icons/octagonMinus.js.map +0 -1
- package/dist/collection/components/icons/search.js +0 -64
- package/dist/collection/components/icons/search.js.map +0 -1
- package/dist/collection/components/icons/settings.js +0 -64
- package/dist/collection/components/icons/settings.js.map +0 -1
- package/dist/collection/components/icons/undo.js +0 -64
- package/dist/collection/components/icons/undo.js.map +0 -1
- package/dist/collection/components/map-draw/map-draw.js +0 -795
- package/dist/collection/components/map-draw/map-draw.js.map +0 -1
- package/dist/collection/components/map-draw/map-selector.js +0 -246
- package/dist/collection/components/map-draw/map-selector.js.map +0 -1
- package/dist/collection/components/map-draw/polygon-buttons.js +0 -86
- package/dist/collection/components/map-draw/polygon-buttons.js.map +0 -1
- package/dist/collection/components/map-draw/polygon-information.js +0 -211
- package/dist/collection/components/map-draw/polygon-information.js.map +0 -1
- package/dist/collection/components/map-draw/tool-box.js +0 -108
- package/dist/collection/components/map-draw/tool-box.js.map +0 -1
- package/dist/collection/components/map-draw/tutorial-component.js +0 -151
- package/dist/collection/components/map-draw/tutorial-component.js.map +0 -1
- package/dist/collection/components/settings/settings.js +0 -127
- package/dist/collection/components/settings/settings.js.map +0 -1
- package/dist/collection/components/solar-expert/solar-expert.js +0 -241
- package/dist/collection/components/solar-expert/solar-expert.js.map +0 -1
- package/dist/collection/components/solar-system-form/solar-system-form.js +0 -596
- package/dist/collection/components/solar-system-form/solar-system-form.js.map +0 -1
- package/dist/collection/components/widgets/loading-widget.js +0 -18
- package/dist/collection/components/widgets/loading-widget.js.map +0 -1
- package/dist/collection/components/widgets/toast-notification.js +0 -133
- package/dist/collection/components/widgets/toast-notification.js.map +0 -1
- package/dist/collection/config.js.map +0 -1
- package/dist/collection/constants.js +0 -90
- package/dist/collection/constants.js.map +0 -1
- package/dist/collection/index.js +0 -2
- package/dist/collection/index.js.map +0 -1
- package/dist/collection/output.css +0 -1126
- package/dist/collection/store.js +0 -43
- package/dist/collection/store.js.map +0 -1
- package/dist/collection/types/lang.js +0 -2
- package/dist/collection/types/lang.js.map +0 -1
- package/dist/collection/types/shapes.js +0 -2
- package/dist/collection/types/shapes.js.map +0 -1
- package/dist/collection/utils/api.js +0 -93
- package/dist/collection/utils/api.js.map +0 -1
- package/dist/collection/utils/images.js +0 -2
- package/dist/collection/utils/images.js.map +0 -1
- package/dist/collection/utils/lang/english.js +0 -157
- package/dist/collection/utils/lang/english.js.map +0 -1
- package/dist/collection/utils/lang/general.js +0 -30
- package/dist/collection/utils/lang/general.js.map +0 -1
- package/dist/collection/utils/lang/german.js +0 -157
- package/dist/collection/utils/lang/german.js.map +0 -1
- package/dist/collection/utils/lang/spanish.js +0 -157
- package/dist/collection/utils/lang/spanish.js.map +0 -1
- package/dist/collection/utils/render/tools.js.map +0 -1
- package/dist/collection/utils/solar.js +0 -136
- package/dist/collection/utils/solar.js.map +0 -1
- package/dist/collection/utils/theme.js +0 -97
- package/dist/collection/utils/theme.js.map +0 -1
- package/dist/collection/utils/utils.js.map +0 -1
- package/dist/components/eraser-icon.js +0 -11
- package/dist/components/eraser-icon.js.map +0 -1
- package/dist/components/house-icon.js +0 -11
- package/dist/components/house-icon.js.map +0 -1
- package/dist/components/icon-selector.js +0 -11
- package/dist/components/icon-selector.js.map +0 -1
- package/dist/components/index.js +0 -1269
- package/dist/components/index.js.map +0 -1
- package/dist/components/map-draw.js +0 -11
- package/dist/components/map-draw.js.map +0 -1
- package/dist/components/map-selector.js +0 -11
- package/dist/components/map-selector.js.map +0 -1
- package/dist/components/marker-icon.js +0 -11
- package/dist/components/marker-icon.js.map +0 -1
- package/dist/components/move-icon.js +0 -11
- package/dist/components/move-icon.js.map +0 -1
- package/dist/components/octagon-minus-icon.js +0 -11
- package/dist/components/octagon-minus-icon.js.map +0 -1
- package/dist/components/p-B54Ul0nf.js +0 -15
- package/dist/components/p-B54Ul0nf.js.map +0 -1
- package/dist/components/p-B5WTRCh8.js +0 -3241
- package/dist/components/p-B5WTRCh8.js.map +0 -1
- package/dist/components/p-BFJHTJPM.js.map +0 -1
- package/dist/components/p-BGoSj_DR.js +0 -902
- package/dist/components/p-BGoSj_DR.js.map +0 -1
- package/dist/components/p-BJLO76Yi.js.map +0 -1
- package/dist/components/p-BcVa4_YP.js.map +0 -1
- package/dist/components/p-Bopprtc7.js +0 -623
- package/dist/components/p-Bopprtc7.js.map +0 -1
- package/dist/components/p-ByX6QP-E.js.map +0 -1
- package/dist/components/p-C5QieOat.js.map +0 -1
- package/dist/components/p-CL74Q4VR.js.map +0 -1
- package/dist/components/p-Cgchl6bA.js +0 -47
- package/dist/components/p-Cgchl6bA.js.map +0 -1
- package/dist/components/p-D8w3bTPO.js.map +0 -1
- package/dist/components/p-DBwr8xSB.js.map +0 -1
- package/dist/components/p-DWirjxpO.js +0 -163
- package/dist/components/p-DWirjxpO.js.map +0 -1
- package/dist/components/p-DlNHVTGB.js +0 -15949
- package/dist/components/p-DlNHVTGB.js.map +0 -1
- package/dist/components/p-Dzl6kfPI.js.map +0 -1
- package/dist/components/p-FdEV2qPo.js.map +0 -1
- package/dist/components/p-PkMjF2if.js +0 -1985
- package/dist/components/p-PkMjF2if.js.map +0 -1
- package/dist/components/p-Umz6nJIv.js.map +0 -1
- package/dist/components/p-WmcSqXD8.js +0 -14
- package/dist/components/p-WmcSqXD8.js.map +0 -1
- package/dist/components/p-eDwaXClX.js.map +0 -1
- package/dist/components/p-j-vOrhhh.js +0 -114
- package/dist/components/p-j-vOrhhh.js.map +0 -1
- package/dist/components/p-q8auDIJ2.js +0 -138
- package/dist/components/p-q8auDIJ2.js.map +0 -1
- package/dist/components/p-waOPoUcA.js.map +0 -1
- package/dist/components/polygon-buttons.js +0 -11
- package/dist/components/polygon-buttons.js.map +0 -1
- package/dist/components/polygon-information.js +0 -11
- package/dist/components/polygon-information.js.map +0 -1
- package/dist/components/search-icon.js +0 -11
- package/dist/components/search-icon.js.map +0 -1
- package/dist/components/settings-icon.js +0 -11
- package/dist/components/settings-icon.js.map +0 -1
- package/dist/components/settings-modal.js +0 -11
- package/dist/components/settings-modal.js.map +0 -1
- package/dist/components/solar-expert.js.map +0 -1
- package/dist/components/solar-system-form.js +0 -11
- package/dist/components/solar-system-form.js.map +0 -1
- package/dist/components/toast-notification.js +0 -11
- package/dist/components/toast-notification.js.map +0 -1
- package/dist/components/tool-box.js +0 -11
- package/dist/components/tool-box.js.map +0 -1
- package/dist/components/tutorial-component.js +0 -11
- package/dist/components/tutorial-component.js.map +0 -1
- package/dist/components/undo-icon.js +0 -11
- package/dist/components/undo-icon.js.map +0 -1
- package/dist/esm/basedecoder-j-vOrhhh.js +0 -114
- package/dist/esm/basedecoder-j-vOrhhh.js.map +0 -1
- package/dist/esm/deflate-DHgPf9CO.js +0 -15
- package/dist/esm/eraser-icon_19.entry.js +0 -7
- package/dist/esm/eraser-icon_19.entry.js.map +0 -1
- package/dist/esm/index-C2JRBB5c.js +0 -1458
- package/dist/esm/index-C2JRBB5c.js.map +0 -1
- package/dist/esm/index.js +0 -5
- package/dist/esm/index.js.map +0 -1
- package/dist/esm/jpeg-CJLm1GkA.js.map +0 -1
- package/dist/esm/lerc-CAiDQjTu.js +0 -4424
- package/dist/esm/lerc-CAiDQjTu.js.map +0 -1
- package/dist/esm/loader.js +0 -16
- package/dist/esm/loader.js.map +0 -1
- package/dist/esm/loading-widget.entry.js.map +0 -1
- package/dist/esm/lzw-DaOzWJUD.js.map +0 -1
- package/dist/esm/packbits-CZPyx9kx.js +0 -33
- package/dist/esm/packbits-CZPyx9kx.js.map +0 -1
- package/dist/esm/pako.esm-B5WTRCh8.js +0 -3241
- package/dist/esm/raw-pqeeWc2_.js +0 -14
- package/dist/esm/raw-pqeeWc2_.js.map +0 -1
- package/dist/esm/stencil-library.js +0 -26
- package/dist/esm/stencil-library.js.map +0 -1
- package/dist/index.cjs.js +0 -1
- package/dist/index.js +0 -1
- package/dist/stencil-library/p-B54Ul0nf.js +0 -2
- package/dist/stencil-library/p-B54Ul0nf.js.map +0 -1
- package/dist/stencil-library/p-B5WTRCh8.js +0 -2
- package/dist/stencil-library/p-B5WTRCh8.js.map +0 -1
- package/dist/stencil-library/p-BBtmpSUK.js +0 -2
- package/dist/stencil-library/p-BBtmpSUK.js.map +0 -1
- package/dist/stencil-library/p-BGoSj_DR.js +0 -2
- package/dist/stencil-library/p-BGoSj_DR.js.map +0 -1
- package/dist/stencil-library/p-ByX6QP-E.js +0 -2
- package/dist/stencil-library/p-ByX6QP-E.js.map +0 -1
- package/dist/stencil-library/p-C2JRBB5c.js +0 -3
- package/dist/stencil-library/p-C2JRBB5c.js.map +0 -1
- package/dist/stencil-library/p-CX8V3eiN.js +0 -2
- package/dist/stencil-library/p-CX8V3eiN.js.map +0 -1
- package/dist/stencil-library/p-Cgchl6bA.js +0 -2
- package/dist/stencil-library/p-Cgchl6bA.js.map +0 -1
- package/dist/stencil-library/p-WmcSqXD8.js +0 -2
- package/dist/stencil-library/p-WmcSqXD8.js.map +0 -1
- package/dist/stencil-library/p-ab0f2031.entry.js.map +0 -1
- package/dist/stencil-library/p-cAuhy_jT.js +0 -10
- package/dist/stencil-library/p-cAuhy_jT.js.map +0 -1
- package/dist/stencil-library/p-e7b94dbb.entry.js +0 -2
- package/dist/stencil-library/p-e7b94dbb.entry.js.map +0 -1
- package/dist/stencil-library/p-j-vOrhhh.js +0 -2
- package/dist/stencil-library/p-j-vOrhhh.js.map +0 -1
- package/dist/stencil-library/p-q8auDIJ2.js +0 -2
- package/dist/stencil-library/p-q8auDIJ2.js.map +0 -1
- /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js +0 -0
- /package/dist/{esm → stencil-library}/app-globals-CX8V3eiN.js.map +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"file":"p-BcVa4_YP.js","mappings":"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","names":["init","inflate","Lerc"],"sources":["../../node_modules/rollup-plugin-node-polyfills/polyfills/buffer-es6.js","../../node_modules/lerc/LercDecode.js","../../node_modules/zstddec/dist/zstddec.modern.js","../../node_modules/geotiff/dist-module/compression/lerc.js"],"sourcesContent":["var lookup = [];\nvar revLookup = [];\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;\nvar inited = false;\nfunction init () {\n inited = true;\n var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n for (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i];\n revLookup[code.charCodeAt(i)] = i;\n }\n\n revLookup['-'.charCodeAt(0)] = 62;\n revLookup['_'.charCodeAt(0)] = 63;\n}\n\nfunction toByteArray (b64) {\n if (!inited) {\n init();\n }\n var i, j, l, tmp, placeHolders, arr;\n var len = b64.length;\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // the number of equal signs (place holders)\n // if there are two placeholders, than the two characters before it\n // represent one byte\n // if there is only one, then the three characters before it represent 2 bytes\n // this is just a cheap hack to not do indexOf twice\n placeHolders = b64[len - 2] === '=' ? 2 : b64[len - 1] === '=' ? 1 : 0;\n\n // base64 is 4/3 + up to two characters of the original data\n arr = new Arr(len * 3 / 4 - placeHolders);\n\n // if there are placeholders, only get up to the last complete 4 chars\n l = placeHolders > 0 ? len - 4 : len;\n\n var L = 0;\n\n for (i = 0, j = 0; i < l; i += 4, j += 3) {\n tmp = (revLookup[b64.charCodeAt(i)] << 18) | (revLookup[b64.charCodeAt(i + 1)] << 12) | (revLookup[b64.charCodeAt(i + 2)] << 6) | revLookup[b64.charCodeAt(i + 3)];\n arr[L++] = (tmp >> 16) & 0xFF;\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n if (placeHolders === 2) {\n tmp = (revLookup[b64.charCodeAt(i)] << 2) | (revLookup[b64.charCodeAt(i + 1)] >> 4);\n arr[L++] = tmp & 0xFF;\n } else if (placeHolders === 1) {\n tmp = (revLookup[b64.charCodeAt(i)] << 10) | (revLookup[b64.charCodeAt(i + 1)] << 4) | (revLookup[b64.charCodeAt(i + 2)] >> 2);\n arr[L++] = (tmp >> 8) & 0xFF;\n arr[L++] = tmp & 0xFF;\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] + lookup[num >> 12 & 0x3F] + lookup[num >> 6 & 0x3F] + lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp;\n var output = [];\n for (var i = start; i < end; i += 3) {\n tmp = (uint8[i] << 16) + (uint8[i + 1] << 8) + (uint8[i + 2]);\n output.push(tripletToBase64(tmp));\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n if (!inited) {\n init();\n }\n var tmp;\n var len = uint8.length;\n var extraBytes = len % 3; // if we have 1 byte left, pad 2 bytes\n var output = '';\n var parts = [];\n var maxChunkLength = 16383; // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)));\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1];\n output += lookup[tmp >> 2];\n output += lookup[(tmp << 4) & 0x3F];\n output += '==';\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + (uint8[len - 1]);\n output += lookup[tmp >> 10];\n output += lookup[(tmp >> 4) & 0x3F];\n output += lookup[(tmp << 2) & 0x3F];\n output += '=';\n }\n\n parts.push(output);\n\n return parts.join('')\n}\n\nfunction read (buffer, offset, isLE, mLen, nBytes) {\n var e, m;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var nBits = -7;\n var i = isLE ? (nBytes - 1) : 0;\n var d = isLE ? -1 : 1;\n var s = buffer[offset + i];\n\n i += d;\n\n e = s & ((1 << (-nBits)) - 1);\n s >>= (-nBits);\n nBits += eLen;\n for (; nBits > 0; e = e * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1);\n e >>= (-nBits);\n nBits += mLen;\n for (; nBits > 0; m = m * 256 + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias;\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen);\n e = e - eBias;\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nfunction write (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c;\n var eLen = nBytes * 8 - mLen - 1;\n var eMax = (1 << eLen) - 1;\n var eBias = eMax >> 1;\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0);\n var i = isLE ? 0 : (nBytes - 1);\n var d = isLE ? 1 : -1;\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0;\n\n value = Math.abs(value);\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0;\n e = eMax;\n } else {\n e = Math.floor(Math.log(value) / Math.LN2);\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--;\n c *= 2;\n }\n if (e + eBias >= 1) {\n value += rt / c;\n } else {\n value += rt * Math.pow(2, 1 - eBias);\n }\n if (value * c >= 2) {\n e++;\n c /= 2;\n }\n\n if (e + eBias >= eMax) {\n m = 0;\n e = eMax;\n } else if (e + eBias >= 1) {\n m = (value * c - 1) * Math.pow(2, mLen);\n e = e + eBias;\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen);\n e = 0;\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m;\n eLen += mLen;\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128;\n}\n\nvar toString = {}.toString;\n\nvar isArray = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n\n/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh <feross@feross.org> <http://feross.org>\n * @license MIT\n */\n\nvar INSPECT_MAX_BYTES = 50;\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : true;\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nvar _kMaxLength = kMaxLength();\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length);\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length);\n }\n that.length = length;\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192; // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype;\n return arr\n};\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n};\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype;\n Buffer.__proto__ = Uint8Array;\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size);\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n};\n\nfunction allocUnsafe (that, size) {\n assertSize(size);\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0;\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n};\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n};\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8';\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0;\n that = createBuffer(that, length);\n\n var actual = that.write(string, encoding);\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual);\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0;\n that = createBuffer(that, length);\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255;\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength; // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array);\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset);\n } else {\n array = new Uint8Array(array, byteOffset, length);\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array;\n that.__proto__ = Buffer.prototype;\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array);\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (internalIsBuffer(obj)) {\n var len = checked(obj.length) | 0;\n that = createBuffer(that, len);\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len);\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0;\n }\n return Buffer.alloc(+length)\n}\nBuffer.isBuffer = isBuffer;\nfunction internalIsBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!internalIsBuffer(a) || !internalIsBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length;\n var y = b.length;\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i];\n y = b[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n};\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i;\n if (length === undefined) {\n length = 0;\n for (i = 0; i < list.length; ++i) {\n length += list[i].length;\n }\n }\n\n var buffer = Buffer.allocUnsafe(length);\n var pos = 0;\n for (i = 0; i < list.length; ++i) {\n var buf = list[i];\n if (!internalIsBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos);\n pos += buf.length;\n }\n return buffer\n};\n\nfunction byteLength (string, encoding) {\n if (internalIsBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string;\n }\n\n var len = string.length;\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n}\nBuffer.byteLength = byteLength;\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false;\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0;\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length;\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0;\n start >>>= 0;\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8';\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase();\n loweredCase = true;\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true;\n\nfunction swap (b, n, m) {\n var i = b[n];\n b[n] = b[m];\n b[m] = i;\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length;\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1);\n }\n return this\n};\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length;\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3);\n swap(this, i + 1, i + 2);\n }\n return this\n};\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length;\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7);\n swap(this, i + 1, i + 6);\n swap(this, i + 2, i + 5);\n swap(this, i + 3, i + 4);\n }\n return this\n};\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0;\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n};\n\nBuffer.prototype.equals = function equals (b) {\n if (!internalIsBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n};\n\nBuffer.prototype.inspect = function inspect () {\n var str = '';\n var max = INSPECT_MAX_BYTES;\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ');\n if (this.length > max) str += ' ... ';\n }\n return '<Buffer ' + str + '>'\n};\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!internalIsBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0;\n }\n if (end === undefined) {\n end = target ? target.length : 0;\n }\n if (thisStart === undefined) {\n thisStart = 0;\n }\n if (thisEnd === undefined) {\n thisEnd = this.length;\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0;\n end >>>= 0;\n thisStart >>>= 0;\n thisEnd >>>= 0;\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart;\n var y = end - start;\n var len = Math.min(x, y);\n\n var thisCopy = this.slice(thisStart, thisEnd);\n var targetCopy = target.slice(start, end);\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i];\n y = targetCopy[i];\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n};\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset;\n byteOffset = 0;\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff;\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000;\n }\n byteOffset = +byteOffset; // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1);\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset;\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1;\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0;\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding);\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (internalIsBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF; // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1;\n var arrLength = arr.length;\n var valLength = val.length;\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase();\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2;\n arrLength /= 2;\n valLength /= 2;\n byteOffset /= 2;\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i;\n if (dir) {\n var foundIndex = -1;\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i;\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex;\n foundIndex = -1;\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength;\n for (i = byteOffset; i >= 0; i--) {\n var found = true;\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false;\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n};\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n};\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n};\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0;\n var remaining = buf.length - offset;\n if (!length) {\n length = remaining;\n } else {\n length = Number(length);\n if (length > remaining) {\n length = remaining;\n }\n }\n\n // must be an even number of digits\n var strLen = string.length;\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2;\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16);\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed;\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8';\n length = this.length;\n offset = 0;\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset;\n length = this.length;\n offset = 0;\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0;\n if (isFinite(length)) {\n length = length | 0;\n if (encoding === undefined) encoding = 'utf8';\n } else {\n encoding = length;\n length = undefined;\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset;\n if (length === undefined || length > remaining) length = remaining;\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8';\n\n var loweredCase = false;\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase();\n loweredCase = true;\n }\n }\n};\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n};\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return fromByteArray(buf)\n } else {\n return fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end);\n var res = [];\n\n var i = start;\n while (i < end) {\n var firstByte = buf[i];\n var codePoint = null;\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1;\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint;\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte;\n }\n break\n case 2:\n secondByte = buf[i + 1];\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F);\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 3:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F);\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint;\n }\n }\n break\n case 4:\n secondByte = buf[i + 1];\n thirdByte = buf[i + 2];\n fourthByte = buf[i + 3];\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F);\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint;\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD;\n bytesPerSequence = 1;\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000;\n res.push(codePoint >>> 10 & 0x3FF | 0xD800);\n codePoint = 0xDC00 | codePoint & 0x3FF;\n }\n\n res.push(codePoint);\n i += bytesPerSequence;\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000;\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length;\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = '';\n var i = 0;\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n );\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F);\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = '';\n end = Math.min(buf.length, end);\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i]);\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length;\n\n if (!start || start < 0) start = 0;\n if (!end || end < 0 || end > len) end = len;\n\n var out = '';\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i]);\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end);\n var res = '';\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256);\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length;\n start = ~~start;\n end = end === undefined ? len : ~~end;\n\n if (start < 0) {\n start += len;\n if (start < 0) start = 0;\n } else if (start > len) {\n start = len;\n }\n\n if (end < 0) {\n end += len;\n if (end < 0) end = 0;\n } else if (end > len) {\n end = len;\n }\n\n if (end < start) end = start;\n\n var newBuf;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end);\n newBuf.__proto__ = Buffer.prototype;\n } else {\n var sliceLen = end - start;\n newBuf = new Buffer(sliceLen, undefined);\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start];\n }\n }\n\n return newBuf\n};\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length);\n }\n\n var val = this[offset + --byteLength];\n var mul = 1;\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul;\n }\n\n return val\n};\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n return this[offset]\n};\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return this[offset] | (this[offset + 1] << 8)\n};\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n return (this[offset] << 8) | this[offset + 1]\n};\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n};\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n};\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var val = this[offset];\n var mul = 1;\n var i = 0;\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) checkOffset(offset, byteLength, this.length);\n\n var i = byteLength;\n var mul = 1;\n var val = this[offset + --i];\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul;\n }\n mul *= 0x80;\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength);\n\n return val\n};\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length);\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n};\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset] | (this[offset + 1] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length);\n var val = this[offset + 1] | (this[offset] << 8);\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n};\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n};\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n};\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, true, 23, 4)\n};\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length);\n return read(this, offset, false, 23, 4)\n};\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, true, 52, 8)\n};\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length);\n return read(this, offset, false, 52, 8)\n};\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!internalIsBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var mul = 1;\n var i = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n byteLength = byteLength | 0;\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1;\n checkInt(this, value, offset, byteLength, maxBytes, 0);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8;\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1;\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff;\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24);\n this[offset + 2] = (value >>> 16);\n this[offset + 1] = (value >>> 8);\n this[offset] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = 0;\n var mul = 1;\n var sub = 0;\n this[offset] = value & 0xFF;\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1);\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit);\n }\n\n var i = byteLength - 1;\n var mul = 1;\n var sub = 0;\n this[offset + i] = value & 0xFF;\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1;\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF;\n }\n\n return offset + byteLength\n};\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80);\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value);\n if (value < 0) value = 0xff + value + 1;\n this[offset] = (value & 0xff);\n return offset + 1\n};\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n } else {\n objectWriteUInt16(this, value, offset, true);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8);\n this[offset + 1] = (value & 0xff);\n } else {\n objectWriteUInt16(this, value, offset, false);\n }\n return offset + 2\n};\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff);\n this[offset + 1] = (value >>> 8);\n this[offset + 2] = (value >>> 16);\n this[offset + 3] = (value >>> 24);\n } else {\n objectWriteUInt32(this, value, offset, true);\n }\n return offset + 4\n};\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value;\n offset = offset | 0;\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000);\n if (value < 0) value = 0xffffffff + value + 1;\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24);\n this[offset + 1] = (value >>> 16);\n this[offset + 2] = (value >>> 8);\n this[offset + 3] = (value & 0xff);\n } else {\n objectWriteUInt32(this, value, offset, false);\n }\n return offset + 4\n};\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4);\n }\n write(buf, value, offset, littleEndian, 23, 4);\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n};\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8);\n }\n write(buf, value, offset, littleEndian, 52, 8);\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n};\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n};\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0;\n if (!end && end !== 0) end = this.length;\n if (targetStart >= target.length) targetStart = target.length;\n if (!targetStart) targetStart = 0;\n if (end > 0 && end < start) end = start;\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length;\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start;\n }\n\n var len = end - start;\n var i;\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start];\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start];\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n );\n }\n\n return len\n};\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start;\n start = 0;\n end = this.length;\n } else if (typeof end === 'string') {\n encoding = end;\n end = this.length;\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0);\n if (code < 256) {\n val = code;\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255;\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0;\n end = end === undefined ? this.length : end >>> 0;\n\n if (!val) val = 0;\n\n var i;\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val;\n }\n } else {\n var bytes = internalIsBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString());\n var len = bytes.length;\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len];\n }\n }\n\n return this\n};\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g;\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '');\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '=';\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity;\n var codePoint;\n var length = string.length;\n var leadSurrogate = null;\n var bytes = [];\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i);\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint;\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n leadSurrogate = codePoint;\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000;\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD);\n }\n\n leadSurrogate = null;\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint);\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n );\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF);\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo;\n var byteArray = [];\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i);\n hi = c >> 8;\n lo = c % 256;\n byteArray.push(lo);\n byteArray.push(hi);\n }\n\n return byteArray\n}\n\n\nfunction base64ToBytes (str) {\n return toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i];\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n\n\n// the following is from is-buffer, also by Feross Aboukhadijeh and with same lisence\n// The _isBuffer check is for Safari 5-7 support, because it's missing\n// Object.prototype.constructor. Remove this eventually\nfunction isBuffer(obj) {\n return obj != null && (!!obj._isBuffer || isFastBuffer(obj) || isSlowBuffer(obj))\n}\n\nfunction isFastBuffer (obj) {\n return !!obj.constructor && typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n\n// For Node v0.10 support. Remove this eventually.\nfunction isSlowBuffer (obj) {\n return typeof obj.readFloatLE === 'function' && typeof obj.slice === 'function' && isFastBuffer(obj.slice(0, 0))\n}\n\nexport { Buffer, INSPECT_MAX_BYTES, SlowBuffer, isBuffer, _kMaxLength as kMaxLength };\n","/* jshint forin: false, bitwise: false */\n/*\nCopyright 2015-2021 Esri\n\nLicensed under the Apache License, Version 2.0 (the \"License\");\nyou may not use this file except in compliance with the License.\nYou may obtain a copy of the License at\n\nhttp://www.apache.org/licenses/LICENSE-2.0\n\nUnless required by applicable law or agreed to in writing, software\ndistributed under the License is distributed on an \"AS IS\" BASIS,\nWITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and\nlimitations under the License.\n\nA copy of the license and additional notices are located with the\nsource distribution at:\n\nhttp://github.com/Esri/lerc/\n\nContributors: Johannes Schmid, (LERC v1)\n Chayanika Khatua, (LERC v1)\n Wenxue Ju (LERC v1, v2.x)\n*/\n\n/* Copyright 2015-2021 Esri. Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */\n\n/**\n * a module for decoding LERC blobs\n * @module Lerc\n */\n(function() {\n //this decoder supports all lerc versions, each version has its own class (LercDecode and Lerc2Decode). \n //the exported module handles format variation autoamtically.\n\n //the original LercDecode for Version 1\n var LercDecode = (function() {\n\n // Note: currently, this module only has an implementation for decoding LERC data, not encoding. The name of\n // the class was chosen to be future proof.\n\n var CntZImage = {};\n\n CntZImage.defaultNoDataValue = -3.4027999387901484e+38; // smallest Float32 value\n\n /**\n * Decode a LERC byte stream and return an object containing the pixel data and some required and optional\n * information about it, such as the image's width and height.\n *\n * @param {ArrayBuffer} input The LERC input byte stream\n * @param {object} [options] Decoding options, containing any of the following properties:\n * @config {number} [inputOffset = 0]\n * Skip the first inputOffset bytes of the input byte stream. A valid LERC file is expected at that position.\n * @config {Uint8Array} [encodedMask = null]\n * If specified, the decoder will not read mask information from the input and use the specified encoded\n * mask data instead. Mask header/data must not be present in the LERC byte stream in this case.\n * @config {number} [noDataValue = LercCode.defaultNoDataValue]\n * Pixel value to use for masked pixels.\n * @config {ArrayBufferView|Array} [pixelType = Float32Array]\n * The desired type of the pixelData array in the return value. Note that it is the caller's responsibility to\n * provide an appropriate noDataValue if the default pixelType is overridden.\n * @config {boolean} [returnMask = false]\n * If true, the return value will contain a maskData property of type Uint8Array which has one element per\n * pixel, the value of which is 1 or 0 depending on whether that pixel's data is present or masked. If the\n * input LERC data does not contain a mask, maskData will not be returned.\n * @config {boolean} [returnEncodedMask = false]\n * If true, the return value will contain a encodedMaskData property, which can be passed into encode() as\n * encodedMask.\n * @config {boolean} [returnFileInfo = false]\n * If true, the return value will have a fileInfo property that contains metadata obtained from the\n * LERC headers and the decoding process.\n * @config {boolean} [computeUsedBitDepths = false]\n * If true, the fileInfo property in the return value will contain the set of all block bit depths\n * encountered during decoding. Will only have an effect if returnFileInfo option is true.\n * @returns {{width, height, pixelData, minValue, maxValue, noDataValue, maskData, encodedMaskData, fileInfo}}\n */\n CntZImage.decode = function(input, options) {\n options = options || {};\n\n var skipMask = options.encodedMaskData || (options.encodedMaskData === null);\n var parsedData = parse(input, options.inputOffset || 0, skipMask);\n\n var noDataValue = (options.noDataValue !== null) ? options.noDataValue : CntZImage.defaultNoDataValue;\n\n var uncompressedData = uncompressPixelValues(parsedData, options.pixelType || Float32Array,\n options.encodedMaskData, noDataValue, options.returnMask);\n\n var result = {\n width: parsedData.width,\n height: parsedData.height,\n pixelData: uncompressedData.resultPixels,\n minValue: uncompressedData.minValue,\n maxValue: parsedData.pixels.maxValue,\n noDataValue: noDataValue\n };\n\n if (uncompressedData.resultMask) {\n result.maskData = uncompressedData.resultMask;\n }\n\n if (options.returnEncodedMask && parsedData.mask) {\n result.encodedMaskData = parsedData.mask.bitset ? parsedData.mask.bitset : null;\n }\n\n if (options.returnFileInfo) {\n result.fileInfo = formatFileInfo(parsedData);\n if (options.computeUsedBitDepths) {\n result.fileInfo.bitDepths = computeUsedBitDepths(parsedData);\n }\n }\n\n return result;\n };\n\n var uncompressPixelValues = function(data, TypedArrayClass, maskBitset, noDataValue, storeDecodedMask) {\n var blockIdx = 0;\n var numX = data.pixels.numBlocksX;\n var numY = data.pixels.numBlocksY;\n var blockWidth = Math.floor(data.width / numX);\n var blockHeight = Math.floor(data.height / numY);\n var scale = 2 * data.maxZError;\n var minValue = Number.MAX_VALUE, currentValue;\n maskBitset = maskBitset || ((data.mask) ? data.mask.bitset : null);\n\n var resultPixels, resultMask;\n resultPixels = new TypedArrayClass(data.width * data.height);\n if (storeDecodedMask && maskBitset) {\n resultMask = new Uint8Array(data.width * data.height);\n }\n var blockDataBuffer = new Float32Array(blockWidth * blockHeight);\n\n var xx, yy;\n for (var y = 0; y <= numY; y++) {\n var thisBlockHeight = (y !== numY) ? blockHeight : (data.height % numY);\n if (thisBlockHeight === 0) {\n continue;\n }\n for (var x = 0; x <= numX; x++) {\n var thisBlockWidth = (x !== numX) ? blockWidth : (data.width % numX);\n if (thisBlockWidth === 0) {\n continue;\n }\n\n var outPtr = y * data.width * blockHeight + x * blockWidth;\n var outStride = data.width - thisBlockWidth;\n\n var block = data.pixels.blocks[blockIdx];\n\n var blockData, blockPtr, constValue;\n if (block.encoding < 2) {\n // block is either uncompressed or bit-stuffed (encodings 0 and 1)\n if (block.encoding === 0) {\n // block is uncompressed\n blockData = block.rawData;\n } else {\n // block is bit-stuffed\n unstuff(block.stuffedData, block.bitsPerPixel, block.numValidPixels, block.offset, scale, blockDataBuffer, data.pixels.maxValue);\n blockData = blockDataBuffer;\n }\n blockPtr = 0;\n }\n else if (block.encoding === 2) {\n // block is all 0\n constValue = 0;\n }\n else {\n // block has constant value (encoding === 3)\n constValue = block.offset;\n }\n\n var maskByte;\n if (maskBitset) {\n for (yy = 0; yy < thisBlockHeight; yy++) {\n if (outPtr & 7) {\n //\n maskByte = maskBitset[outPtr >> 3];\n maskByte <<= outPtr & 7;\n }\n for (xx = 0; xx < thisBlockWidth; xx++) {\n if (!(outPtr & 7)) {\n // read next byte from mask\n maskByte = maskBitset[outPtr >> 3];\n }\n if (maskByte & 128) {\n // pixel data present\n if (resultMask) {\n resultMask[outPtr] = 1;\n }\n currentValue = (block.encoding < 2) ? blockData[blockPtr++] : constValue;\n minValue = minValue > currentValue ? currentValue : minValue;\n resultPixels[outPtr++] = currentValue;\n } else {\n // pixel data not present\n if (resultMask) {\n resultMask[outPtr] = 0;\n }\n resultPixels[outPtr++] = noDataValue;\n }\n maskByte <<= 1;\n }\n outPtr += outStride;\n }\n } else {\n // mask not present, simply copy block over\n if (block.encoding < 2) {\n // duplicating this code block for performance reasons\n // blockData case:\n for (yy = 0; yy < thisBlockHeight; yy++) {\n for (xx = 0; xx < thisBlockWidth; xx++) {\n currentValue = blockData[blockPtr++];\n minValue = minValue > currentValue ? currentValue : minValue;\n resultPixels[outPtr++] = currentValue;\n }\n outPtr += outStride;\n }\n }\n else {\n // constValue case:\n minValue = minValue > constValue ? constValue : minValue;\n for (yy = 0; yy < thisBlockHeight; yy++) {\n for (xx = 0; xx < thisBlockWidth; xx++) {\n resultPixels[outPtr++] = constValue;\n }\n outPtr += outStride;\n }\n }\n }\n if ((block.encoding === 1) && (blockPtr !== block.numValidPixels)) {\n throw \"Block and Mask do not match\";\n }\n blockIdx++;\n }\n }\n\n return {\n resultPixels: resultPixels,\n resultMask: resultMask,\n minValue: minValue\n };\n };\n\n var formatFileInfo = function(data) {\n return {\n \"fileIdentifierString\": data.fileIdentifierString,\n \"fileVersion\": data.fileVersion,\n \"imageType\": data.imageType,\n \"height\": data.height,\n \"width\": data.width,\n \"maxZError\": data.maxZError,\n \"eofOffset\": data.eofOffset,\n \"mask\": data.mask ? {\n \"numBlocksX\": data.mask.numBlocksX,\n \"numBlocksY\": data.mask.numBlocksY,\n \"numBytes\": data.mask.numBytes,\n \"maxValue\": data.mask.maxValue\n } : null,\n \"pixels\": {\n \"numBlocksX\": data.pixels.numBlocksX,\n \"numBlocksY\": data.pixels.numBlocksY,\n \"numBytes\": data.pixels.numBytes,\n \"maxValue\": data.pixels.maxValue,\n \"noDataValue\": data.noDataValue\n }\n };\n };\n\n var computeUsedBitDepths = function(data) {\n var numBlocks = data.pixels.numBlocksX * data.pixels.numBlocksY;\n var bitDepths = {};\n for (var i = 0; i < numBlocks; i++) {\n var block = data.pixels.blocks[i];\n if (block.encoding === 0) {\n bitDepths.float32 = true;\n } else if (block.encoding === 1) {\n bitDepths[block.bitsPerPixel] = true;\n } else {\n bitDepths[0] = true;\n }\n }\n\n return Object.keys(bitDepths);\n };\n\n var parse = function(input, fp, skipMask) {\n var data = {};\n\n // File header\n var fileIdView = new Uint8Array(input, fp, 10);\n data.fileIdentifierString = String.fromCharCode.apply(null, fileIdView);\n if (data.fileIdentifierString.trim() !== \"CntZImage\") {\n throw \"Unexpected file identifier string: \" + data.fileIdentifierString;\n }\n fp += 10;\n var view = new DataView(input, fp, 24);\n data.fileVersion = view.getInt32(0, true);\n data.imageType = view.getInt32(4, true);\n data.height = view.getUint32(8, true);\n data.width = view.getUint32(12, true);\n data.maxZError = view.getFloat64(16, true);\n fp += 24;\n\n // Mask Header\n if (!skipMask) {\n view = new DataView(input, fp, 16);\n data.mask = {};\n data.mask.numBlocksY = view.getUint32(0, true);\n data.mask.numBlocksX = view.getUint32(4, true);\n data.mask.numBytes = view.getUint32(8, true);\n data.mask.maxValue = view.getFloat32(12, true);\n fp += 16;\n\n // Mask Data\n if (data.mask.numBytes > 0) {\n var bitset = new Uint8Array(Math.ceil(data.width * data.height / 8));\n view = new DataView(input, fp, data.mask.numBytes);\n var cnt = view.getInt16(0, true);\n var ip = 2, op = 0;\n do {\n if (cnt > 0) {\n while (cnt--) { bitset[op++] = view.getUint8(ip++); }\n } else {\n var val = view.getUint8(ip++);\n cnt = -cnt;\n while (cnt--) { bitset[op++] = val; }\n }\n cnt = view.getInt16(ip, true);\n ip += 2;\n } while (ip < data.mask.numBytes);\n if ((cnt !== -32768) || (op < bitset.length)) {\n throw \"Unexpected end of mask RLE encoding\";\n }\n data.mask.bitset = bitset;\n fp += data.mask.numBytes;\n }\n else if ((data.mask.numBytes | data.mask.numBlocksY | data.mask.maxValue) === 0) { // Special case, all nodata\n data.mask.bitset = new Uint8Array(Math.ceil(data.width * data.height / 8));\n }\n }\n\n // Pixel Header\n view = new DataView(input, fp, 16);\n data.pixels = {};\n data.pixels.numBlocksY = view.getUint32(0, true);\n data.pixels.numBlocksX = view.getUint32(4, true);\n data.pixels.numBytes = view.getUint32(8, true);\n data.pixels.maxValue = view.getFloat32(12, true);\n fp += 16;\n\n var numBlocksX = data.pixels.numBlocksX;\n var numBlocksY = data.pixels.numBlocksY;\n // the number of blocks specified in the header does not take into account the blocks at the end of\n // each row/column with a special width/height that make the image complete in case the width is not\n // evenly divisible by the number of blocks.\n var actualNumBlocksX = numBlocksX + ((data.width % numBlocksX) > 0 ? 1 : 0);\n var actualNumBlocksY = numBlocksY + ((data.height % numBlocksY) > 0 ? 1 : 0);\n data.pixels.blocks = new Array(actualNumBlocksX * actualNumBlocksY);\n var blockI = 0;\n for (var blockY = 0; blockY < actualNumBlocksY; blockY++) {\n for (var blockX = 0; blockX < actualNumBlocksX; blockX++) {\n\n // Block\n var size = 0;\n var bytesLeft = input.byteLength - fp;\n view = new DataView(input, fp, Math.min(10, bytesLeft));\n var block = {};\n data.pixels.blocks[blockI++] = block;\n var headerByte = view.getUint8(0); size++;\n block.encoding = headerByte & 63;\n if (block.encoding > 3) {\n throw \"Invalid block encoding (\" + block.encoding + \")\";\n }\n if (block.encoding === 2) {\n fp++;\n continue;\n }\n if ((headerByte !== 0) && (headerByte !== 2)) {\n headerByte >>= 6;\n block.offsetType = headerByte;\n if (headerByte === 2) {\n block.offset = view.getInt8(1); size++;\n } else if (headerByte === 1) {\n block.offset = view.getInt16(1, true); size += 2;\n } else if (headerByte === 0) {\n block.offset = view.getFloat32(1, true); size += 4;\n } else {\n throw \"Invalid block offset type\";\n }\n\n if (block.encoding === 1) {\n headerByte = view.getUint8(size); size++;\n block.bitsPerPixel = headerByte & 63;\n headerByte >>= 6;\n block.numValidPixelsType = headerByte;\n if (headerByte === 2) {\n block.numValidPixels = view.getUint8(size); size++;\n } else if (headerByte === 1) {\n block.numValidPixels = view.getUint16(size, true); size += 2;\n } else if (headerByte === 0) {\n block.numValidPixels = view.getUint32(size, true); size += 4;\n } else {\n throw \"Invalid valid pixel count type\";\n }\n }\n }\n fp += size;\n\n if (block.encoding === 3) {\n continue;\n }\n\n var arrayBuf, store8;\n if (block.encoding === 0) {\n var numPixels = (data.pixels.numBytes - 1) / 4;\n if (numPixels !== Math.floor(numPixels)) {\n throw \"uncompressed block has invalid length\";\n }\n arrayBuf = new ArrayBuffer(numPixels * 4);\n store8 = new Uint8Array(arrayBuf);\n store8.set(new Uint8Array(input, fp, numPixels * 4));\n var rawData = new Float32Array(arrayBuf);\n block.rawData = rawData;\n fp += numPixels * 4;\n } else if (block.encoding === 1) {\n var dataBytes = Math.ceil(block.numValidPixels * block.bitsPerPixel / 8);\n var dataWords = Math.ceil(dataBytes / 4);\n arrayBuf = new ArrayBuffer(dataWords * 4);\n store8 = new Uint8Array(arrayBuf);\n store8.set(new Uint8Array(input, fp, dataBytes));\n block.stuffedData = new Uint32Array(arrayBuf);\n fp += dataBytes;\n }\n }\n }\n data.eofOffset = fp;\n return data;\n };\n\n var unstuff = function(src, bitsPerPixel, numPixels, offset, scale, dest, maxValue) {\n var bitMask = (1 << bitsPerPixel) - 1;\n var i = 0, o;\n var bitsLeft = 0;\n var n, buffer;\n var nmax = Math.ceil((maxValue - offset) / scale);\n // get rid of trailing bytes that are already part of next block\n var numInvalidTailBytes = src.length * 4 - Math.ceil(bitsPerPixel * numPixels / 8);\n src[src.length - 1] <<= 8 * numInvalidTailBytes;\n\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n }\n if (bitsLeft >= bitsPerPixel) {\n n = (buffer >>> (bitsLeft - bitsPerPixel)) & bitMask;\n bitsLeft -= bitsPerPixel;\n } else {\n var missingBits = (bitsPerPixel - bitsLeft);\n n = ((buffer & bitMask) << missingBits) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n += (buffer >>> bitsLeft);\n }\n //pixel values may exceed max due to quantization\n dest[o] = n < nmax ? offset + n * scale : maxValue;\n }\n return dest;\n };\n\n return CntZImage;\n })();\n\n //version 2. Supports 2.1, 2.2, 2.3\n var Lerc2Decode = (function() {\n \"use strict\";\n // Note: currently, this module only has an implementation for decoding LERC data, not encoding. The name of\n // the class was chosen to be future proof, following LercDecode.\n\n /*****************************************\n * private static class bitsutffer used by Lerc2Decode\n *******************************************/\n var BitStuffer = {\n //methods ending with 2 are for the new byte order used by Lerc2.3 and above.\n //originalUnstuff is used to unpack Huffman code table. code is duplicated to unstuffx for performance reasons.\n unstuff: function(src, dest, bitsPerPixel, numPixels, lutArr, offset, scale, maxValue) {\n var bitMask = (1 << bitsPerPixel) - 1;\n var i = 0, o;\n var bitsLeft = 0;\n var n, buffer, missingBits, nmax;\n\n // get rid of trailing bytes that are already part of next block\n var numInvalidTailBytes = src.length * 4 - Math.ceil(bitsPerPixel * numPixels / 8);\n src[src.length - 1] <<= 8 * numInvalidTailBytes;\n if (lutArr) {\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n }\n if (bitsLeft >= bitsPerPixel) {\n n = (buffer >>> (bitsLeft - bitsPerPixel)) & bitMask;\n bitsLeft -= bitsPerPixel;\n }\n else {\n missingBits = (bitsPerPixel - bitsLeft);\n n = ((buffer & bitMask) << missingBits) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n += (buffer >>> bitsLeft);\n }\n dest[o] = lutArr[n];//offset + lutArr[n] * scale;\n }\n }\n else {\n nmax = Math.ceil((maxValue - offset) / scale);\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n }\n if (bitsLeft >= bitsPerPixel) {\n n = (buffer >>> (bitsLeft - bitsPerPixel)) & bitMask;\n bitsLeft -= bitsPerPixel;\n }\n else {\n missingBits = (bitsPerPixel - bitsLeft);\n n = ((buffer & bitMask) << missingBits) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n += (buffer >>> bitsLeft);\n }\n //pixel values may exceed max due to quantization\n dest[o] = n < nmax ? offset + n * scale : maxValue;\n }\n }\n },\n\n unstuffLUT: function(src, bitsPerPixel, numPixels, offset, scale, maxValue) {\n var bitMask = (1 << bitsPerPixel) - 1;\n var i = 0, o = 0, missingBits = 0, bitsLeft = 0, n = 0;\n var buffer;\n var dest = [];\n\n // get rid of trailing bytes that are already part of next block\n var numInvalidTailBytes = src.length * 4 - Math.ceil(bitsPerPixel * numPixels / 8);\n src[src.length - 1] <<= 8 * numInvalidTailBytes;\n\n var nmax = Math.ceil((maxValue - offset) / scale);\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n }\n if (bitsLeft >= bitsPerPixel) {\n n = (buffer >>> (bitsLeft - bitsPerPixel)) & bitMask;\n bitsLeft -= bitsPerPixel;\n } else {\n missingBits = (bitsPerPixel - bitsLeft);\n n = ((buffer & bitMask) << missingBits) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n += (buffer >>> bitsLeft);\n }\n //dest.push(n);\n dest[o] = n < nmax ? offset + n * scale : maxValue;\n }\n dest.unshift(offset);//1st one\n return dest;\n },\n\n unstuff2: function(src, dest, bitsPerPixel, numPixels, lutArr, offset, scale, maxValue) {\n var bitMask = (1 << bitsPerPixel) - 1;\n var i = 0, o;\n var bitsLeft = 0, bitPos = 0;\n var n, buffer, missingBits;\n if (lutArr) {\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n bitPos = 0;\n }\n if (bitsLeft >= bitsPerPixel) {\n n = ((buffer >>> bitPos) & bitMask);\n bitsLeft -= bitsPerPixel;\n bitPos += bitsPerPixel;\n } else {\n missingBits = (bitsPerPixel - bitsLeft);\n n = (buffer >>> bitPos) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n |= (buffer & ((1 << missingBits) - 1)) << (bitsPerPixel - missingBits);\n bitPos = missingBits;\n }\n dest[o] = lutArr[n];\n }\n }\n else {\n var nmax = Math.ceil((maxValue - offset) / scale);\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n bitPos = 0;\n }\n if (bitsLeft >= bitsPerPixel) {\n //no unsigned left shift\n n = ((buffer >>> bitPos) & bitMask);\n bitsLeft -= bitsPerPixel;\n bitPos += bitsPerPixel;\n } else {\n missingBits = (bitsPerPixel - bitsLeft);\n n = (buffer >>> bitPos) & bitMask;//((buffer & bitMask) << missingBits) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n |= (buffer & ((1 << missingBits) - 1)) << (bitsPerPixel - missingBits);\n bitPos = missingBits;\n }\n //pixel values may exceed max due to quantization\n dest[o] = n < nmax ? offset + n * scale : maxValue;\n }\n }\n return dest;\n },\n\n unstuffLUT2: function(src, bitsPerPixel, numPixels, offset, scale, maxValue) {\n var bitMask = (1 << bitsPerPixel) - 1;\n var i = 0, o = 0, missingBits = 0, bitsLeft = 0, n = 0, bitPos = 0;\n var buffer;\n var dest = [];\n var nmax = Math.ceil((maxValue - offset) / scale);\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n bitPos = 0;\n }\n if (bitsLeft >= bitsPerPixel) {\n //no unsigned left shift\n n = ((buffer >>> bitPos) & bitMask);\n bitsLeft -= bitsPerPixel;\n bitPos += bitsPerPixel;\n } else {\n missingBits = (bitsPerPixel - bitsLeft);\n n = (buffer >>> bitPos) & bitMask;//((buffer & bitMask) << missingBits) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n |= (buffer & ((1 << missingBits) - 1)) << (bitsPerPixel - missingBits);\n bitPos = missingBits;\n }\n //dest.push(n);\n dest[o] = n < nmax ? offset + n * scale : maxValue;\n }\n dest.unshift(offset);\n return dest;\n },\n\n originalUnstuff: function(src, dest, bitsPerPixel, numPixels) {\n var bitMask = (1 << bitsPerPixel) - 1;\n var i = 0, o;\n var bitsLeft = 0;\n var n, buffer, missingBits;\n\n // get rid of trailing bytes that are already part of next block\n var numInvalidTailBytes = src.length * 4 - Math.ceil(bitsPerPixel * numPixels / 8);\n src[src.length - 1] <<= 8 * numInvalidTailBytes;\n\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n }\n if (bitsLeft >= bitsPerPixel) {\n n = (buffer >>> (bitsLeft - bitsPerPixel)) & bitMask;\n bitsLeft -= bitsPerPixel;\n }\n else {\n missingBits = (bitsPerPixel - bitsLeft);\n n = ((buffer & bitMask) << missingBits) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n += (buffer >>> bitsLeft);\n }\n dest[o] = n;\n }\n return dest;\n },\n\n originalUnstuff2: function(src, dest, bitsPerPixel, numPixels) {\n var bitMask = (1 << bitsPerPixel) - 1;\n var i = 0, o;\n var bitsLeft = 0, bitPos = 0;\n var n, buffer, missingBits;\n //micro-optimizations\n for (o = 0; o < numPixels; o++) {\n if (bitsLeft === 0) {\n buffer = src[i++];\n bitsLeft = 32;\n bitPos = 0;\n }\n if (bitsLeft >= bitsPerPixel) {\n //no unsigned left shift\n n = ((buffer >>> bitPos) & bitMask);\n bitsLeft -= bitsPerPixel;\n bitPos += bitsPerPixel;\n } else {\n missingBits = (bitsPerPixel - bitsLeft);\n n = (buffer >>> bitPos) & bitMask;//((buffer & bitMask) << missingBits) & bitMask;\n buffer = src[i++];\n bitsLeft = 32 - missingBits;\n n |= (buffer & ((1 << missingBits) - 1)) << (bitsPerPixel - missingBits);\n bitPos = missingBits;\n }\n dest[o] = n;\n }\n return dest;\n }\n };\n\n /*****************************************\n *private static class used by Lerc2Decode\n ******************************************/\n var Lerc2Helpers = {\n HUFFMAN_LUT_BITS_MAX: 12, //use 2^12 lut, treat it like constant\n computeChecksumFletcher32: function(input) {\n\n var sum1 = 0xffff, sum2 = 0xffff;\n var len = input.length;\n var words = Math.floor(len / 2);\n var i = 0;\n while (words) {\n var tlen = (words >= 359) ? 359 : words;\n words -= tlen;\n do {\n sum1 += (input[i++] << 8);\n sum2 += sum1 += input[i++];\n } while (--tlen);\n\n sum1 = (sum1 & 0xffff) + (sum1 >>> 16);\n sum2 = (sum2 & 0xffff) + (sum2 >>> 16);\n }\n\n // add the straggler byte if it exists\n if (len & 1) {\n sum2 += sum1 += (input[i] << 8);\n }\n // second reduction step to reduce sums to 16 bits\n sum1 = (sum1 & 0xffff) + (sum1 >>> 16);\n sum2 = (sum2 & 0xffff) + (sum2 >>> 16);\n\n return (sum2 << 16 | sum1) >>> 0;\n },\n\n readHeaderInfo: function(input, data) {\n var ptr = data.ptr;\n var fileIdView = new Uint8Array(input, ptr, 6);\n var headerInfo = {};\n headerInfo.fileIdentifierString = String.fromCharCode.apply(null, fileIdView);\n if (headerInfo.fileIdentifierString.lastIndexOf(\"Lerc2\", 0) !== 0) {\n throw \"Unexpected file identifier string (expect Lerc2 ): \" + headerInfo.fileIdentifierString;\n }\n ptr += 6;\n var view = new DataView(input, ptr, 8);\n var fileVersion = view.getInt32(0, true);\n headerInfo.fileVersion = fileVersion;\n ptr += 4;\n if (fileVersion >= 3) {\n headerInfo.checksum = view.getUint32(4, true); //nrows\n ptr += 4;\n }\n\n //keys start from here\n view = new DataView(input, ptr, 12);\n headerInfo.height = view.getUint32(0, true); //nrows\n headerInfo.width = view.getUint32(4, true); //ncols\n ptr += 8;\n if (fileVersion >= 4) {\n headerInfo.numDims = view.getUint32(8, true);\n ptr += 4;\n }\n else {\n headerInfo.numDims = 1;\n }\n\n view = new DataView(input, ptr, 40);\n headerInfo.numValidPixel = view.getUint32(0, true);\n headerInfo.microBlockSize = view.getInt32(4, true);\n headerInfo.blobSize = view.getInt32(8, true);\n headerInfo.imageType = view.getInt32(12, true);\n\n headerInfo.maxZError = view.getFloat64(16, true);\n headerInfo.zMin = view.getFloat64(24, true);\n headerInfo.zMax = view.getFloat64(32, true);\n ptr += 40;\n data.headerInfo = headerInfo;\n data.ptr = ptr;\n\n var checksum, keyLength;\n if (fileVersion >= 3) {\n keyLength = fileVersion >= 4 ? 52 : 48;\n checksum = this.computeChecksumFletcher32(new Uint8Array(input, ptr - keyLength, headerInfo.blobSize - 14));\n if (checksum !== headerInfo.checksum) {\n throw \"Checksum failed.\";\n }\n }\n return true;\n },\n\n checkMinMaxRanges: function(input, data) {\n var headerInfo = data.headerInfo;\n var OutPixelTypeArray = this.getDataTypeArray(headerInfo.imageType);\n var rangeBytes = headerInfo.numDims * this.getDataTypeSize(headerInfo.imageType);\n var minValues = this.readSubArray(input, data.ptr, OutPixelTypeArray, rangeBytes);\n var maxValues = this.readSubArray(input, data.ptr + rangeBytes, OutPixelTypeArray, rangeBytes);\n data.ptr += (2 * rangeBytes);\n var i, equal = true;\n for (i = 0; i < headerInfo.numDims; i++) {\n if (minValues[i] !== maxValues[i]) {\n equal = false;\n break;\n }\n }\n headerInfo.minValues = minValues;\n headerInfo.maxValues = maxValues;\n return equal;\n },\n\n readSubArray: function(input, ptr, OutPixelTypeArray, numBytes) {\n var rawData;\n if (OutPixelTypeArray === Uint8Array) {\n rawData = new Uint8Array(input, ptr, numBytes);\n }\n else {\n var arrayBuf = new ArrayBuffer(numBytes);\n var store8 = new Uint8Array(arrayBuf);\n store8.set(new Uint8Array(input, ptr, numBytes));\n rawData = new OutPixelTypeArray(arrayBuf);\n }\n return rawData;\n },\n\n readMask: function(input, data) {\n var ptr = data.ptr;\n var headerInfo = data.headerInfo;\n var numPixels = headerInfo.width * headerInfo.height;\n var numValidPixel = headerInfo.numValidPixel;\n\n var view = new DataView(input, ptr, 4);\n var mask = {};\n mask.numBytes = view.getUint32(0, true);\n ptr += 4;\n\n // Mask Data\n if ((0 === numValidPixel || numPixels === numValidPixel) && 0 !== mask.numBytes) {\n throw (\"invalid mask\");\n }\n var bitset, resultMask;\n if (numValidPixel === 0) {\n bitset = new Uint8Array(Math.ceil(numPixels / 8));\n mask.bitset = bitset;\n resultMask = new Uint8Array(numPixels);\n data.pixels.resultMask = resultMask;\n ptr += mask.numBytes;\n }// ????? else if (data.mask.numBytes > 0 && data.mask.numBytes< data.numValidPixel) {\n else if (mask.numBytes > 0) {\n bitset = new Uint8Array(Math.ceil(numPixels / 8));\n view = new DataView(input, ptr, mask.numBytes);\n var cnt = view.getInt16(0, true);\n var ip = 2, op = 0, val = 0;\n do {\n if (cnt > 0) {\n while (cnt--) { bitset[op++] = view.getUint8(ip++); }\n } else {\n val = view.getUint8(ip++);\n cnt = -cnt;\n while (cnt--) { bitset[op++] = val; }\n }\n cnt = view.getInt16(ip, true);\n ip += 2;\n } while (ip < mask.numBytes);\n if ((cnt !== -32768) || (op < bitset.length)) {\n throw \"Unexpected end of mask RLE encoding\";\n }\n\n resultMask = new Uint8Array(numPixels);\n var mb = 0, k = 0;\n\n for (k = 0; k < numPixels; k++) {\n if (k & 7) {\n mb = bitset[k >> 3];\n mb <<= k & 7;\n }\n else {\n mb = bitset[k >> 3];\n }\n if (mb & 128) {\n resultMask[k] = 1;\n }\n }\n data.pixels.resultMask = resultMask;\n\n mask.bitset = bitset;\n ptr += mask.numBytes;\n }\n data.ptr = ptr;\n data.mask = mask;\n return true;\n },\n\n readDataOneSweep: function(input, data, OutPixelTypeArray, useBSQForOutputDim) {\n var ptr = data.ptr;\n var headerInfo = data.headerInfo;\n var numDims = headerInfo.numDims;\n var numPixels = headerInfo.width * headerInfo.height;\n var imageType = headerInfo.imageType;\n var numBytes = headerInfo.numValidPixel * Lerc2Helpers.getDataTypeSize(imageType) * numDims;\n //data.pixels.numBytes = numBytes;\n var rawData;\n var mask = data.pixels.resultMask;\n if (OutPixelTypeArray === Uint8Array) {\n rawData = new Uint8Array(input, ptr, numBytes);\n }\n else {\n var arrayBuf = new ArrayBuffer(numBytes);\n var store8 = new Uint8Array(arrayBuf);\n store8.set(new Uint8Array(input, ptr, numBytes));\n rawData = new OutPixelTypeArray(arrayBuf);\n }\n if (rawData.length === numPixels * numDims) {\n if (useBSQForOutputDim) {\n data.pixels.resultPixels = Lerc2Helpers.swapDimensionOrder(rawData, numPixels, numDims, OutPixelTypeArray, true);\n }\n else {\n data.pixels.resultPixels = rawData;\n }\n }\n else //mask\n {\n data.pixels.resultPixels = new OutPixelTypeArray(numPixels * numDims);\n var z = 0, k = 0, i = 0, nStart = 0;\n if (numDims > 1) {\n if (useBSQForOutputDim) {\n for (k = 0; k < numPixels; k++) {\n if (mask[k]) {\n nStart = k;\n for (i = 0; i < numDims; i++, nStart+=numPixels) {\n data.pixels.resultPixels[nStart] = rawData[z++];\n }\n }\n }\n }\n else {\n for (k = 0; k < numPixels; k++) {\n if (mask[k]) {\n nStart = k * numDims;\n for (i = 0; i < numDims; i++) {\n data.pixels.resultPixels[nStart + i] = rawData[z++];\n }\n }\n }\n }\n }\n else {\n for (k = 0; k < numPixels; k++) {\n if (mask[k]) {\n data.pixels.resultPixels[k] = rawData[z++];\n }\n }\n }\n }\n ptr += numBytes;\n data.ptr = ptr; //return data;\n return true;\n },\n\n readHuffmanTree: function(input, data) {\n var BITS_MAX = this.HUFFMAN_LUT_BITS_MAX; //8 is slow for the large test image\n //var size_max = 1 << BITS_MAX;\n /* ************************\n * reading code table\n *************************/\n var view = new DataView(input, data.ptr, 16);\n data.ptr += 16;\n var version = view.getInt32(0, true);\n if (version < 2) {\n throw \"unsupported Huffman version\";\n }\n var size = view.getInt32(4, true);\n var i0 = view.getInt32(8, true);\n var i1 = view.getInt32(12, true);\n if (i0 >= i1) {\n return false;\n }\n var blockDataBuffer = new Uint32Array(i1 - i0);\n Lerc2Helpers.decodeBits(input, data, blockDataBuffer);\n var codeTable = []; //size\n var i, j, k, len;\n\n for (i = i0; i < i1; i++) {\n j = i - (i < size ? 0 : size);//wrap around\n codeTable[j] = { first: blockDataBuffer[i - i0], second: null };\n }\n\n var dataBytes = input.byteLength - data.ptr;\n var dataWords = Math.ceil(dataBytes / 4);\n var arrayBuf = new ArrayBuffer(dataWords * 4);\n var store8 = new Uint8Array(arrayBuf);\n store8.set(new Uint8Array(input, data.ptr, dataBytes));\n var stuffedData = new Uint32Array(arrayBuf); //must start from x*4\n var bitPos = 0, word, srcPtr = 0;\n word = stuffedData[0];\n for (i = i0; i < i1; i++) {\n j = i - (i < size ? 0 : size);//wrap around\n len = codeTable[j].first;\n if (len > 0) {\n codeTable[j].second = (word << bitPos) >>> (32 - len);\n\n if (32 - bitPos >= len) {\n bitPos += len;\n if (bitPos === 32) {\n bitPos = 0;\n srcPtr++;\n word = stuffedData[srcPtr];\n }\n }\n else {\n bitPos += len - 32;\n srcPtr++;\n word = stuffedData[srcPtr];\n codeTable[j].second |= word >>> (32 - bitPos);\n }\n }\n }\n\n //finished reading code table\n\n /* ************************\n * building lut\n *************************/\n var numBitsLUT = 0, numBitsLUTQick = 0;\n var tree = new TreeNode();\n for (i = 0; i < codeTable.length; i++) {\n if (codeTable[i] !== undefined) {\n numBitsLUT = Math.max(numBitsLUT, codeTable[i].first);\n }\n }\n if (numBitsLUT >= BITS_MAX) {\n numBitsLUTQick = BITS_MAX;\n }\n else {\n numBitsLUTQick = numBitsLUT;\n }\n // for debugging purpose\n // if (numBitsLUT >= 30) {\n // console.log(\"WARning, large NUM LUT BITS IS \" + numBitsLUT);\n // }\n var decodeLut = [], entry, code, numEntries, jj, currentBit, node;\n for (i = i0; i < i1; i++) {\n j = i - (i < size ? 0 : size);//wrap around\n len = codeTable[j].first;\n if (len > 0) {\n entry = [len, j];\n if (len <= numBitsLUTQick) {\n code = codeTable[j].second << (numBitsLUTQick - len);\n numEntries = 1 << (numBitsLUTQick - len);\n for (k = 0; k < numEntries; k++) {\n decodeLut[code | k] = entry;\n }\n }\n else {\n //build tree\n code = codeTable[j].second;\n node = tree;\n for (jj = len - 1; jj >= 0; jj--) {\n currentBit = code >>> jj & 1; //no left shift as length could be 30,31\n if (currentBit) {\n if (!node.right) {\n node.right = new TreeNode();\n }\n node = node.right;\n }\n else {\n if (!node.left) {\n node.left = new TreeNode();\n }\n node = node.left;\n }\n if (jj === 0 && !node.val) {\n node.val = entry[1];\n }\n }\n }\n }\n }\n return {\n decodeLut: decodeLut,\n numBitsLUTQick: numBitsLUTQick,\n numBitsLUT: numBitsLUT,\n tree: tree,\n stuffedData: stuffedData,\n srcPtr: srcPtr,\n bitPos: bitPos\n };\n },\n\n readHuffman: function(input, data, OutPixelTypeArray, useBSQForOutputDim) {\n var headerInfo = data.headerInfo;\n var numDims = headerInfo.numDims;\n var height = data.headerInfo.height;\n var width = data.headerInfo.width;\n var numPixels = width * height;\n //var size_max = 1 << BITS_MAX;\n /* ************************\n * reading huffman structure info\n *************************/\n var huffmanInfo = this.readHuffmanTree(input, data);\n var decodeLut = huffmanInfo.decodeLut;\n var tree = huffmanInfo.tree;\n //stuffedData includes huffman headers\n var stuffedData = huffmanInfo.stuffedData;\n var srcPtr = huffmanInfo.srcPtr;\n var bitPos = huffmanInfo.bitPos;\n var numBitsLUTQick = huffmanInfo.numBitsLUTQick;\n var numBitsLUT = huffmanInfo.numBitsLUT;\n var offset = data.headerInfo.imageType === 0 ? 128 : 0;\n /*************************\n * decode\n ***************************/\n var node, val, delta, mask = data.pixels.resultMask, valTmp, valTmpQuick, currentBit;\n var i, j, k, ii;\n var prevVal = 0;\n if (bitPos > 0) {\n srcPtr++;\n bitPos = 0;\n }\n var word = stuffedData[srcPtr];\n var deltaEncode = data.encodeMode === 1;\n var resultPixelsAllDim = new OutPixelTypeArray(numPixels * numDims);\n var resultPixels = resultPixelsAllDim;\n var iDim;\n // TODO: reevaluate the need to keep inlined decoding code as IE support is phasing out\n if (numDims < 2 || deltaEncode) {\n for (iDim = 0; iDim < numDims; iDim++) {\n if (numDims > 1) {\n //get the mem block of current dimension\n resultPixels = new OutPixelTypeArray(resultPixelsAllDim.buffer, numPixels * iDim, numPixels);\n prevVal = 0;\n }\n if (data.headerInfo.numValidPixel === width * height) { //all valid\n for (k = 0, i = 0; i < height; i++) {\n for (j = 0; j < width; j++, k++) {\n val = 0;\n valTmp = (word << bitPos) >>> (32 - numBitsLUTQick);\n valTmpQuick = valTmp;// >>> deltaBits;\n if (32 - bitPos < numBitsLUTQick) {\n valTmp |= ((stuffedData[srcPtr + 1]) >>> (64 - bitPos - numBitsLUTQick));\n valTmpQuick = valTmp;// >>> deltaBits;\n }\n if (decodeLut[valTmpQuick]) // if there, move the correct number of bits and done\n {\n val = decodeLut[valTmpQuick][1];\n bitPos += decodeLut[valTmpQuick][0];\n }\n else {\n valTmp = (word << bitPos) >>> (32 - numBitsLUT);\n valTmpQuick = valTmp;// >>> deltaBits;\n if (32 - bitPos < numBitsLUT) {\n valTmp |= ((stuffedData[srcPtr + 1]) >>> (64 - bitPos - numBitsLUT));\n valTmpQuick = valTmp;// >>> deltaBits;\n }\n node = tree;\n for (ii = 0; ii < numBitsLUT; ii++) {\n currentBit = valTmp >>> (numBitsLUT - ii - 1) & 1;\n node = currentBit ? node.right : node.left;\n if (!(node.left || node.right)) {\n val = node.val;\n bitPos = bitPos + ii + 1;\n break;\n }\n }\n }\n \n if (bitPos >= 32) {\n bitPos -= 32;\n srcPtr++;\n word = stuffedData[srcPtr];\n }\n \n delta = val - offset;\n if (deltaEncode) {\n if (j > 0) {\n delta += prevVal; // use overflow\n }\n else if (i > 0) {\n delta += resultPixels[k - width];\n }\n else {\n delta += prevVal;\n }\n delta &= 0xFF; //overflow\n resultPixels[k] = delta;//overflow\n prevVal = delta;\n }\n else {\n resultPixels[k] = delta;\n }\n }\n }\n }\n else { //not all valid, use mask\n for (k = 0, i = 0; i < height; i++) {\n for (j = 0; j < width; j++, k++) {\n if (mask[k]) {\n val = 0;\n valTmp = (word << bitPos) >>> (32 - numBitsLUTQick);\n valTmpQuick = valTmp;// >>> deltaBits;\n if (32 - bitPos < numBitsLUTQick) {\n valTmp |= ((stuffedData[srcPtr + 1]) >>> (64 - bitPos - numBitsLUTQick));\n valTmpQuick = valTmp;// >>> deltaBits;\n }\n if (decodeLut[valTmpQuick]) // if there, move the correct number of bits and done\n {\n val = decodeLut[valTmpQuick][1];\n bitPos += decodeLut[valTmpQuick][0];\n }\n else {\n valTmp = (word << bitPos) >>> (32 - numBitsLUT);\n valTmpQuick = valTmp;// >>> deltaBits;\n if (32 - bitPos < numBitsLUT) {\n valTmp |= ((stuffedData[srcPtr + 1]) >>> (64 - bitPos - numBitsLUT));\n valTmpQuick = valTmp;// >>> deltaBits;\n }\n node = tree;\n for (ii = 0; ii < numBitsLUT; ii++) {\n currentBit = valTmp >>> (numBitsLUT - ii - 1) & 1;\n node = currentBit ? node.right : node.left;\n if (!(node.left || node.right)) {\n val = node.val;\n bitPos = bitPos + ii + 1;\n break;\n }\n }\n }\n \n if (bitPos >= 32) {\n bitPos -= 32;\n srcPtr++;\n word = stuffedData[srcPtr];\n }\n \n delta = val - offset;\n if (deltaEncode) {\n if (j > 0 && mask[k - 1]) {\n delta += prevVal; // use overflow\n }\n else if (i > 0 && mask[k - width]) {\n delta += resultPixels[k - width];\n }\n else {\n delta += prevVal;\n }\n \n delta &= 0xFF; //overflow\n resultPixels[k] = delta;//overflow\n prevVal = delta;\n }\n else {\n resultPixels[k] = delta;\n }\n }\n }\n }\n }\n }\n }\n else {\n for (k = 0, i = 0; i < height; i++) {\n for (j = 0; j < width; j++) {\n k = i * width + j;\n if (!mask || mask[k]) {\n for (iDim = 0; iDim < numDims; iDim++, k+=numPixels) {\n val = 0;\n valTmp = (word << bitPos) >>> (32 - numBitsLUTQick);\n valTmpQuick = valTmp;\n if (32 - bitPos < numBitsLUTQick) {\n valTmp |= ((stuffedData[srcPtr + 1]) >>> (64 - bitPos - numBitsLUTQick));\n valTmpQuick = valTmp;\n }\n if (decodeLut[valTmpQuick])\n {\n val = decodeLut[valTmpQuick][1];\n bitPos += decodeLut[valTmpQuick][0];\n }\n else {\n valTmp = (word << bitPos) >>> (32 - numBitsLUT);\n valTmpQuick = valTmp;\n if (32 - bitPos < numBitsLUT) {\n valTmp |= ((stuffedData[srcPtr + 1]) >>> (64 - bitPos - numBitsLUT));\n valTmpQuick = valTmp;\n }\n node = tree;\n for (ii = 0; ii < numBitsLUT; ii++) {\n currentBit = valTmp >>> (numBitsLUT - ii - 1) & 1;\n node = currentBit ? node.right : node.left;\n if (!(node.left || node.right)) {\n val = node.val;\n bitPos = bitPos + ii + 1;\n break;\n }\n }\n }\n\n if (bitPos >= 32) {\n bitPos -= 32;\n srcPtr++;\n word = stuffedData[srcPtr];\n }\n\n delta = val - offset;\n resultPixels[k] = delta;\n }\n }\n }\n }\n }\n data.ptr = data.ptr + (srcPtr + 1) * 4 + (bitPos > 0 ? 4 : 0);\n data.pixels.resultPixels = resultPixelsAllDim;\n //swap for BIP layout\n if (numDims > 1 && !useBSQForOutputDim) {\n data.pixels.resultPixels = Lerc2Helpers.swapDimensionOrder(resultPixelsAllDim, numPixels, numDims, OutPixelTypeArray);\n }\n },\n\n decodeBits: function(input, data, blockDataBuffer, offset, iDim) {\n {\n //bitstuff encoding is 3\n var headerInfo = data.headerInfo;\n var fileVersion = headerInfo.fileVersion;\n //var block = {};\n var blockPtr = 0;\n var viewByteLength = ((input.byteLength - data.ptr) >= 5) ? 5 : (input.byteLength - data.ptr);\n var view = new DataView(input, data.ptr, viewByteLength);\n var headerByte = view.getUint8(0);\n blockPtr++;\n var bits67 = headerByte >> 6;\n var n = (bits67 === 0) ? 4 : 3 - bits67;\n var doLut = (headerByte & 32) > 0 ? true : false;//5th bit\n var numBits = headerByte & 31;\n var numElements = 0;\n if (n === 1) {\n numElements = view.getUint8(blockPtr); blockPtr++;\n } else if (n === 2) {\n numElements = view.getUint16(blockPtr, true); blockPtr += 2;\n } else if (n === 4) {\n numElements = view.getUint32(blockPtr, true); blockPtr += 4;\n } else {\n throw \"Invalid valid pixel count type\";\n }\n //fix: huffman codes are bit stuffed, but not bound by data's max value, so need to use originalUnstuff\n //offset = offset || 0;\n var scale = 2 * headerInfo.maxZError;\n var stuffedData, arrayBuf, store8, dataBytes, dataWords;\n var lutArr, lutData, lutBytes, lutBitsPerElement, bitsPerPixel;\n var zMax = headerInfo.numDims > 1 ? headerInfo.maxValues[iDim] : headerInfo.zMax;\n if (doLut) {\n data.counter.lut++;\n lutBytes = view.getUint8(blockPtr);\n lutBitsPerElement = numBits;\n blockPtr++;\n dataBytes = Math.ceil((lutBytes - 1) * numBits / 8);\n dataWords = Math.ceil(dataBytes / 4);\n arrayBuf = new ArrayBuffer(dataWords * 4);\n store8 = new Uint8Array(arrayBuf);\n\n data.ptr += blockPtr;\n store8.set(new Uint8Array(input, data.ptr, dataBytes));\n\n lutData = new Uint32Array(arrayBuf);\n data.ptr += dataBytes;\n\n bitsPerPixel = 0;\n while ((lutBytes - 1) >>> bitsPerPixel) {\n bitsPerPixel++;\n }\n dataBytes = Math.ceil(numElements * bitsPerPixel / 8);\n dataWords = Math.ceil(dataBytes / 4);\n arrayBuf = new ArrayBuffer(dataWords * 4);\n store8 = new Uint8Array(arrayBuf);\n store8.set(new Uint8Array(input, data.ptr, dataBytes));\n stuffedData = new Uint32Array(arrayBuf);\n data.ptr += dataBytes;\n if (fileVersion >= 3) {\n lutArr = BitStuffer.unstuffLUT2(lutData, numBits, lutBytes - 1, offset, scale, zMax);\n }\n else {\n lutArr = BitStuffer.unstuffLUT(lutData, numBits, lutBytes - 1, offset, scale, zMax);\n }\n //lutArr.unshift(0);\n if (fileVersion >= 3) {\n //BitStuffer.unstuff2(block, blockDataBuffer, headerInfo.zMax);\n BitStuffer.unstuff2(stuffedData, blockDataBuffer, bitsPerPixel, numElements, lutArr);\n }\n else {\n BitStuffer.unstuff(stuffedData, blockDataBuffer, bitsPerPixel, numElements, lutArr);\n }\n }\n else {\n //console.debug(\"bitstuffer\");\n data.counter.bitstuffer++;\n bitsPerPixel = numBits;\n data.ptr += blockPtr;\n if (bitsPerPixel > 0) {\n dataBytes = Math.ceil(numElements * bitsPerPixel / 8);\n dataWords = Math.ceil(dataBytes / 4);\n arrayBuf = new ArrayBuffer(dataWords * 4);\n store8 = new Uint8Array(arrayBuf);\n store8.set(new Uint8Array(input, data.ptr, dataBytes));\n stuffedData = new Uint32Array(arrayBuf);\n data.ptr += dataBytes;\n if (fileVersion >= 3) {\n if (offset == null) {\n BitStuffer.originalUnstuff2(stuffedData, blockDataBuffer, bitsPerPixel, numElements);\n }\n else {\n BitStuffer.unstuff2(stuffedData, blockDataBuffer, bitsPerPixel, numElements, false, offset, scale, zMax);\n }\n }\n else {\n if (offset == null) {\n BitStuffer.originalUnstuff(stuffedData, blockDataBuffer, bitsPerPixel, numElements);\n }\n else {\n BitStuffer.unstuff(stuffedData, blockDataBuffer, bitsPerPixel, numElements, false, offset, scale, zMax);\n }\n }\n }\n }\n }\n\n },\n\n readTiles: function(input, data, OutPixelTypeArray, useBSQForOutputDim) {\n var headerInfo = data.headerInfo;\n var width = headerInfo.width;\n var height = headerInfo.height;\n var numPixels = width * height;\n var microBlockSize = headerInfo.microBlockSize;\n var imageType = headerInfo.imageType;\n var dataTypeSize = Lerc2Helpers.getDataTypeSize(imageType);\n var numBlocksX = Math.ceil(width / microBlockSize);\n var numBlocksY = Math.ceil(height / microBlockSize);\n data.pixels.numBlocksY = numBlocksY;\n data.pixels.numBlocksX = numBlocksX;\n data.pixels.ptr = 0;\n var row = 0, col = 0, blockY = 0, blockX = 0, thisBlockHeight = 0, thisBlockWidth = 0, bytesLeft = 0, headerByte = 0, bits67 = 0, testCode = 0, outPtr = 0, outStride = 0, numBytes = 0, bytesleft = 0, z = 0, blockPtr = 0;\n var view, block, arrayBuf, store8, rawData;\n var blockEncoding;\n var blockDataBuffer = new OutPixelTypeArray(microBlockSize * microBlockSize);\n var lastBlockHeight = (height % microBlockSize) || microBlockSize;\n var lastBlockWidth = (width % microBlockSize) || microBlockSize;\n var offsetType, offset;\n var numDims = headerInfo.numDims, iDim;\n var mask = data.pixels.resultMask;\n var resultPixels = data.pixels.resultPixels;\n var fileVersion = headerInfo.fileVersion;\n var fileVersionCheckNum = fileVersion >= 5 ? 14 : 15;\n var isDiffEncoding;\n var zMax = headerInfo.zMax;\n //var resultPixelsAllDim = resultPixels;\n var resultPixelsPrevDim;\n for (blockY = 0; blockY < numBlocksY; blockY++) {\n thisBlockHeight = (blockY !== numBlocksY - 1) ? microBlockSize : lastBlockHeight;\n for (blockX = 0; blockX < numBlocksX; blockX++) {\n //console.debug(\"y\" + blockY + \" x\" + blockX);\n thisBlockWidth = (blockX !== numBlocksX - 1) ? microBlockSize : lastBlockWidth;\n\n outPtr = blockY * width * microBlockSize + blockX * microBlockSize;\n outStride = width - thisBlockWidth;\n\n for (iDim = 0; iDim < numDims; iDim++) {\n if (numDims > 1) {\n resultPixelsPrevDim = resultPixels;\n outPtr = blockY * width * microBlockSize + blockX * microBlockSize;\n resultPixels = new OutPixelTypeArray(data.pixels.resultPixels.buffer, numPixels * iDim * dataTypeSize, numPixels);\n zMax = headerInfo.maxValues[iDim];\n } else {\n resultPixelsPrevDim = null;\n }\n bytesLeft = input.byteLength - data.ptr;\n view = new DataView(input, data.ptr, Math.min(10, bytesLeft));\n block = {};\n blockPtr = 0;\n headerByte = view.getUint8(0);\n blockPtr++;\n isDiffEncoding = headerInfo.fileVersion >= 5 ? headerByte & 4 : 0;\n bits67 = (headerByte >> 6) & 0xFF;\n testCode = (headerByte >> 2) & fileVersionCheckNum; // use bits 2345 for integrity check\n if (testCode !== (((blockX * microBlockSize) >> 3) & fileVersionCheckNum)) {\n throw \"integrity issue\";\n }\n\n if (isDiffEncoding && iDim === 0) {\n throw \"integrity issue\";\n }\n\n blockEncoding = headerByte & 3;\n if (blockEncoding > 3) {\n data.ptr += blockPtr;\n throw \"Invalid block encoding (\" + blockEncoding + \")\";\n }\n else if (blockEncoding === 2) { //constant 0\n if (isDiffEncoding) {\n if (mask) {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n if (mask[outPtr]) {\n resultPixels[outPtr] = resultPixelsPrevDim[outPtr];\n }\n outPtr++;\n }\n }\n }\n else {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n resultPixels[outPtr] = resultPixelsPrevDim[outPtr];\n outPtr++;\n }\n }\n }\n }\n data.counter.constant++;\n data.ptr += blockPtr;\n continue;\n }\n else if (blockEncoding === 0) { //uncompressed\n if (isDiffEncoding) {\n // doesn't make sense, should not happen\n throw \"integrity issue\";\n }\n data.counter.uncompressed++;\n data.ptr += blockPtr;\n numBytes = thisBlockHeight * thisBlockWidth * dataTypeSize;\n bytesleft = input.byteLength - data.ptr;\n numBytes = numBytes < bytesleft ? numBytes : bytesleft;\n //bit alignment\n arrayBuf = new ArrayBuffer((numBytes % dataTypeSize) === 0 ? numBytes : (numBytes + dataTypeSize - numBytes % dataTypeSize));\n store8 = new Uint8Array(arrayBuf);\n store8.set(new Uint8Array(input, data.ptr, numBytes));\n rawData = new OutPixelTypeArray(arrayBuf);\n z = 0;\n if (mask) {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n if (mask[outPtr]) {\n resultPixels[outPtr] = rawData[z++];\n }\n outPtr++;\n }\n outPtr += outStride;\n }\n }\n else {//all valid\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n resultPixels[outPtr++] = rawData[z++];\n }\n outPtr += outStride;\n }\n }\n data.ptr += z * dataTypeSize;\n }\n else { //1 or 3\n offsetType = Lerc2Helpers.getDataTypeUsed((isDiffEncoding && imageType < 6) ? 4 : imageType, bits67);\n offset = Lerc2Helpers.getOnePixel(block, blockPtr, offsetType, view);\n blockPtr += Lerc2Helpers.getDataTypeSize(offsetType);\n if (blockEncoding === 3) //constant offset value\n {\n data.ptr += blockPtr;\n data.counter.constantoffset++;\n //you can delete the following resultMask case in favor of performance because val is constant and users use nodata mask, otherwise nodatavalue post processing handles it too.\n //while the above statement is true, we're not doing it as we want to keep invalid pixel value at 0 rather than arbitrary values\n if (mask) {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n if (mask[outPtr]) {\n resultPixels[outPtr] = isDiffEncoding ? Math.min(zMax, resultPixelsPrevDim[outPtr] + offset) : offset;\n }\n outPtr++;\n }\n outPtr += outStride;\n }\n }\n else {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n resultPixels[outPtr] = isDiffEncoding ? Math.min(zMax, resultPixelsPrevDim[outPtr] + offset) : offset;\n outPtr++;\n }\n outPtr += outStride;\n }\n }\n }\n else { //bitstuff encoding is 3\n data.ptr += blockPtr;\n //heavy lifting\n Lerc2Helpers.decodeBits(input, data, blockDataBuffer, offset, iDim);\n blockPtr = 0;\n // duplicate code to favor performance, diff encoding is for multidimension only\n if (isDiffEncoding) {\n if (mask) {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n if (mask[outPtr]) {\n resultPixels[outPtr] = blockDataBuffer[blockPtr++] + resultPixelsPrevDim[outPtr];\n }\n outPtr++;\n }\n outPtr += outStride;\n }\n }\n else {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n resultPixels[outPtr] = blockDataBuffer[blockPtr++] + resultPixelsPrevDim[outPtr];\n outPtr++;\n }\n outPtr += outStride;\n }\n }\n }\n else if (mask) {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n if (mask[outPtr]) {\n resultPixels[outPtr] = blockDataBuffer[blockPtr++];\n }\n outPtr++;\n }\n outPtr += outStride;\n }\n }\n else {\n for (row = 0; row < thisBlockHeight; row++) {\n for (col = 0; col < thisBlockWidth; col++) {\n resultPixels[outPtr++] = blockDataBuffer[blockPtr++];\n }\n outPtr += outStride;\n }\n }\n }\n }\n }\n }\n }\n //swap for BIP: it's always easier for clients to handle BSQ so we keep existing logic and introduce a swap here to minimze changes\n if (numDims > 1 && !useBSQForOutputDim) {\n data.pixels.resultPixels = Lerc2Helpers.swapDimensionOrder(data.pixels.resultPixels, numPixels, numDims, OutPixelTypeArray);\n }\n },\n\n /*****************\n * private methods (helper methods)\n *****************/\n\n formatFileInfo: function(data) {\n return {\n \"fileIdentifierString\": data.headerInfo.fileIdentifierString,\n \"fileVersion\": data.headerInfo.fileVersion,\n \"imageType\": data.headerInfo.imageType,\n \"height\": data.headerInfo.height,\n \"width\": data.headerInfo.width,\n \"numValidPixel\": data.headerInfo.numValidPixel,\n \"microBlockSize\": data.headerInfo.microBlockSize,\n \"blobSize\": data.headerInfo.blobSize,\n \"maxZError\": data.headerInfo.maxZError,\n \"pixelType\": Lerc2Helpers.getPixelType(data.headerInfo.imageType),\n \"eofOffset\": data.eofOffset,\n \"mask\": data.mask ? {\n \"numBytes\": data.mask.numBytes\n } : null,\n \"pixels\": {\n \"numBlocksX\": data.pixels.numBlocksX,\n \"numBlocksY\": data.pixels.numBlocksY,\n //\"numBytes\": data.pixels.numBytes,\n \"maxValue\": data.headerInfo.zMax,\n \"minValue\": data.headerInfo.zMin,\n \"noDataValue\": data.noDataValue\n }\n };\n },\n\n constructConstantSurface: function(data, useBSQForOutputDim) {\n var val = data.headerInfo.zMax;\n var valMin = data.headerInfo.zMin;\n var maxValues = data.headerInfo.maxValues;\n var numDims = data.headerInfo.numDims;\n var numPixels = data.headerInfo.height * data.headerInfo.width;\n var i = 0, k = 0, nStart = 0;\n var mask = data.pixels.resultMask;\n var resultPixels = data.pixels.resultPixels;\n if (mask) {\n if (numDims > 1) {\n if (useBSQForOutputDim) {\n for (i = 0; i < numDims; i++) {\n nStart = i * numPixels;\n val = maxValues[i];\n for (k = 0; k < numPixels; k++) {\n if (mask[k]) {\n resultPixels[nStart + k] = val;\n }\n }\n } \n }\n else {\n for (k = 0; k < numPixels; k++) {\n if (mask[k]) {\n nStart = k * numDims;\n for (i = 0; i < numDims; i++) {\n resultPixels[nStart + numDims] = maxValues[i];\n }\n }\n }\n }\n }\n else {\n for (k = 0; k < numPixels; k++) {\n if (mask[k]) {\n resultPixels[k] = val;\n }\n }\n }\n }\n else {\n if (numDims > 1 && valMin !== val) {\n if (useBSQForOutputDim) {\n for (i = 0; i < numDims; i++) {\n nStart = i * numPixels;\n val = maxValues[i];\n for (k = 0; k < numPixels; k++) {\n resultPixels[nStart + k] = val;\n }\n }\n }\n else {\n for (k = 0; k < numPixels; k++) {\n nStart = k * numDims;\n for (i = 0; i < numDims; i++) {\n resultPixels[nStart + i] = maxValues[i];\n }\n }\n }\n }\n else {\n for (k = 0; k < numPixels * numDims; k++) {\n resultPixels[k] = val;\n }\n }\n }\n return;\n },\n\n getDataTypeArray: function(t) {\n var tp;\n switch (t) {\n case 0: //char\n tp = Int8Array;\n break;\n case 1: //byte\n tp = Uint8Array;\n break;\n case 2: //short\n tp = Int16Array;\n break;\n case 3: //ushort\n tp = Uint16Array;\n break;\n case 4:\n tp = Int32Array;\n break;\n case 5:\n tp = Uint32Array;\n break;\n case 6:\n tp = Float32Array;\n break;\n case 7:\n tp = Float64Array;\n break;\n default:\n tp = Float32Array;\n }\n return tp;\n },\n\n getPixelType: function(t) {\n var tp;\n switch (t) {\n case 0: //char\n tp = \"S8\";\n break;\n case 1: //byte\n tp = \"U8\";\n break;\n case 2: //short\n tp = \"S16\";\n break;\n case 3: //ushort\n tp = \"U16\";\n break;\n case 4:\n tp = \"S32\";\n break;\n case 5:\n tp = \"U32\";\n break;\n case 6:\n tp = \"F32\";\n break;\n case 7:\n tp = \"F64\";\n break;\n default:\n tp = \"F32\";\n }\n return tp;\n },\n\n isValidPixelValue: function(t, val) {\n if (val == null) {\n return false;\n }\n var isValid;\n switch (t) {\n case 0: //char\n isValid = val >= -128 && val <= 127;\n break;\n case 1: //byte (unsigned char)\n isValid = val >= 0 && val <= 255;\n break;\n case 2: //short\n isValid = val >= -32768 && val <= 32767;\n break;\n case 3: //ushort\n isValid = val >= 0 && val <= 65536;\n break;\n case 4: //int 32\n isValid = val >= -2147483648 && val <= 2147483647;\n break;\n case 5: //uinit 32\n isValid = val >= 0 && val <= 4294967296;\n break;\n case 6:\n isValid = val >= -3.4027999387901484e+38 && val <= 3.4027999387901484e+38;\n break;\n case 7:\n isValid = val >= -1.7976931348623157e+308 && val <= 1.7976931348623157e+308;\n break;\n default:\n isValid = false;\n }\n return isValid;\n },\n\n getDataTypeSize: function(t) {\n var s = 0;\n switch (t) {\n case 0: //ubyte\n case 1: //byte\n s = 1;\n break;\n case 2: //short\n case 3: //ushort\n s = 2;\n break;\n case 4:\n case 5:\n case 6:\n s = 4;\n break;\n case 7:\n s = 8;\n break;\n default:\n s = t;\n }\n return s;\n },\n\n getDataTypeUsed: function(dt, tc) {\n var t = dt;\n switch (dt) {\n case 2: //short\n case 4: //long\n t = dt - tc;\n break;\n case 3: //ushort\n case 5: //ulong\n t = dt - 2 * tc;\n break;\n case 6: //float\n if (0 === tc) {\n t = dt;\n }\n else if (1 === tc) {\n t = 2;\n }\n else {\n t = 1;//byte\n }\n break;\n case 7: //double\n if (0 === tc) {\n t = dt;\n }\n else {\n t = dt - 2 * tc + 1;\n }\n break;\n default:\n t = dt;\n break;\n }\n return t;\n },\n\n getOnePixel: function(block, blockPtr, offsetType, view) {\n var temp = 0;\n switch (offsetType) {\n case 0: //char\n temp = view.getInt8(blockPtr);\n break;\n case 1: //byte\n temp = view.getUint8(blockPtr);\n break;\n case 2:\n temp = view.getInt16(blockPtr, true);\n break;\n case 3:\n temp = view.getUint16(blockPtr, true);\n break;\n case 4:\n temp = view.getInt32(blockPtr, true);\n break;\n case 5:\n temp = view.getUInt32(blockPtr, true);\n break;\n case 6:\n temp = view.getFloat32(blockPtr, true);\n break;\n case 7:\n temp = view.getFloat64(blockPtr, true);\n break;\n default:\n throw (\"the decoder does not understand this pixel type\");\n }\n return temp;\n },\n\n swapDimensionOrder: function(pixels, numPixels, numDims, OutPixelTypeArray, inputIsBIP) {\n var i = 0, j = 0, iDim = 0, temp = 0, swap = pixels;\n if (numDims > 1) {\n swap = new OutPixelTypeArray(numPixels * numDims);\n if (inputIsBIP) {\n for (i=0; i<numPixels; i++) {\n temp = i;\n for (iDim=0; iDim < numDims; iDim++, temp += numPixels) {\n swap[temp] = pixels[j++];\n }\n } \n }\n else {\n for (i=0; i<numPixels; i++) {\n temp = i;\n for (iDim=0; iDim < numDims; iDim++, temp += numPixels) {\n swap[j++] = pixels[temp];\n }\n }\n }\n }\n return swap;\n }\n };\n\n /***************************************************\n *private class for a tree node. Huffman code is in Lerc2Helpers\n ****************************************************/\n var TreeNode = function(val, left, right) {\n this.val = val;\n this.left = left;\n this.right = right;\n };\n\n var Lerc2Decode = {\n /*\n * ********removed options compared to LERC1. We can bring some of them back if needed.\n * removed pixel type. LERC2 is typed and doesn't require user to give pixel type\n * changed encodedMaskData to maskData. LERC2 's js version make it faster to use maskData directly.\n * removed returnMask. mask is used by LERC2 internally and is cost free. In case of user input mask, it's returned as well and has neglible cost.\n * removed nodatavalue. Because LERC2 pixels are typed, nodatavalue will sacrify a useful value for many types (8bit, 16bit) etc,\n * user has to be knowledgable enough about raster and their data to avoid usability issues. so nodata value is simply removed now.\n * We can add it back later if their's a clear requirement.\n * removed encodedMask. This option was not implemented in LercDecode. It can be done after decoding (less efficient)\n * removed computeUsedBitDepths.\n *\n *\n * response changes compared to LERC1\n * 1. encodedMaskData is not available\n * 2. noDataValue is optional (returns only if user's noDataValue is with in the valid data type range)\n * 3. maskData is always available\n */\n /*****************\n * public properties\n ******************/\n //HUFFMAN_LUT_BITS_MAX: 12, //use 2^12 lut, not configurable\n\n /*****************\n * public methods\n *****************/\n\n /**\n * Decode a LERC2 byte stream and return an object containing the pixel data and optional metadata.\n *\n * @param {ArrayBuffer} input The LERC input byte stream\n * @param {object} [options] options Decoding options\n * @param {number} [options.inputOffset] The number of bytes to skip in the input byte stream. A valid LERC file is expected at that position\n * @param {boolean} [options.returnFileInfo] If true, the return value will have a fileInfo property that contains metadata obtained from the LERC headers and the decoding process\n * @param {boolean} [options.returnPixelInterleavedDims] If true, returned dimensions are pixel-interleaved, a.k.a [p1_dim0, p1_dim1, p1_dimn, p2_dim0...], default is [p1_dim0, p2_dim0, ..., p1_dim1, p2_dim1...]\n */\n decode: function(/*byte array*/ input, /*object*/ options) {\n //currently there's a bug in the sparse array, so please do not set to false\n options = options || {};\n var noDataValue = options.noDataValue;\n\n //initialize\n var i = 0, data = {};\n data.ptr = options.inputOffset || 0;\n data.pixels = {};\n\n // File header\n if (!Lerc2Helpers.readHeaderInfo(input, data)) {\n return;\n }\n\n var headerInfo = data.headerInfo;\n var fileVersion = headerInfo.fileVersion;\n var OutPixelTypeArray = Lerc2Helpers.getDataTypeArray(headerInfo.imageType);\n\n // version check\n if (fileVersion > 5) {\n throw \"unsupported lerc version 2.\" + fileVersion;\n }\n\n // Mask Header\n Lerc2Helpers.readMask(input, data);\n if (headerInfo.numValidPixel !== headerInfo.width * headerInfo.height && !data.pixels.resultMask) {\n data.pixels.resultMask = options.maskData;\n }\n\n var numPixels = headerInfo.width * headerInfo.height;\n data.pixels.resultPixels = new OutPixelTypeArray(numPixels * headerInfo.numDims);\n\n data.counter = {\n onesweep: 0,\n uncompressed: 0,\n lut: 0,\n bitstuffer: 0,\n constant: 0,\n constantoffset: 0\n };\n var useBSQForOutputDim = !options.returnPixelInterleavedDims;\n if (headerInfo.numValidPixel !== 0) {\n //not tested\n if (headerInfo.zMax === headerInfo.zMin) //constant surface\n {\n Lerc2Helpers.constructConstantSurface(data, useBSQForOutputDim);\n }\n else if (fileVersion >= 4 && Lerc2Helpers.checkMinMaxRanges(input, data)) {\n Lerc2Helpers.constructConstantSurface(data, useBSQForOutputDim);\n }\n else {\n var view = new DataView(input, data.ptr, 2);\n var bReadDataOneSweep = view.getUint8(0);\n data.ptr++;\n if (bReadDataOneSweep) {\n //console.debug(\"OneSweep\");\n Lerc2Helpers.readDataOneSweep(input, data, OutPixelTypeArray, useBSQForOutputDim);\n }\n else {\n //lerc2.1: //bitstuffing + lut\n //lerc2.2: //bitstuffing + lut + huffman\n //lerc2.3: new bitstuffer\n if (fileVersion > 1 && headerInfo.imageType <= 1 && Math.abs(headerInfo.maxZError - 0.5) < 0.00001) {\n //this is 2.x plus 8 bit (unsigned and signed) data, possiblity of Huffman\n var flagHuffman = view.getUint8(1);\n data.ptr++;\n data.encodeMode = flagHuffman;\n if (flagHuffman > 2 || (fileVersion < 4 && flagHuffman > 1)) {\n throw \"Invalid Huffman flag \" + flagHuffman;\n }\n if (flagHuffman) {//1 - delta Huffman, 2 - Huffman\n //console.log(\"Huffman\");\n Lerc2Helpers.readHuffman(input, data, OutPixelTypeArray, useBSQForOutputDim);\n }\n else {\n //console.log(\"Tiles\");\n Lerc2Helpers.readTiles(input, data, OutPixelTypeArray, useBSQForOutputDim);\n }\n }\n else { //lerc2.x non-8 bit data\n //console.log(\"Tiles\");\n Lerc2Helpers.readTiles(input, data, OutPixelTypeArray, useBSQForOutputDim);\n }\n }\n }\n }\n\n data.eofOffset = data.ptr;\n var diff;\n if (options.inputOffset) {\n diff = data.headerInfo.blobSize + options.inputOffset - data.ptr;\n if (Math.abs(diff) >= 1) {\n //console.debug(\"incorrect eof: dataptr \" + data.ptr + \" offset \" + options.inputOffset + \" blobsize \" + data.headerInfo.blobSize + \" diff: \" + diff);\n data.eofOffset = options.inputOffset + data.headerInfo.blobSize;\n }\n }\n else {\n diff = data.headerInfo.blobSize - data.ptr;\n if (Math.abs(diff) >= 1) {\n //console.debug(\"incorrect first band eof: dataptr \" + data.ptr + \" blobsize \" + data.headerInfo.blobSize + \" diff: \" + diff);\n data.eofOffset = data.headerInfo.blobSize;\n }\n }\n\n var result = {\n width: headerInfo.width,\n height: headerInfo.height,\n pixelData: data.pixels.resultPixels,\n minValue: headerInfo.zMin,\n maxValue: headerInfo.zMax,\n validPixelCount: headerInfo.numValidPixel,\n dimCount: headerInfo.numDims,\n dimStats: {\n minValues: headerInfo.minValues,\n maxValues: headerInfo.maxValues\n },\n maskData: data.pixels.resultMask\n //noDataValue: noDataValue\n };\n\n //we should remove this if there's no existing client\n //optional noDataValue processing, it's user's responsiblity\n if (data.pixels.resultMask && Lerc2Helpers.isValidPixelValue(headerInfo.imageType, noDataValue)) {\n var mask = data.pixels.resultMask;\n for (i = 0; i < numPixels; i++) {\n if (!mask[i]) {\n result.pixelData[i] = noDataValue;\n }\n }\n result.noDataValue = noDataValue;\n }\n data.noDataValue = noDataValue;\n if (options.returnFileInfo) {\n result.fileInfo = Lerc2Helpers.formatFileInfo(data);\n }\n return result;\n },\n\n getBandCount: function(/*byte array*/ input) {\n var count = 0;\n var i = 0;\n var temp = {};\n temp.ptr = 0;\n temp.pixels = {};\n while (i < input.byteLength - 58) {\n Lerc2Helpers.readHeaderInfo(input, temp);\n i += temp.headerInfo.blobSize;\n count++;\n temp.ptr = i;\n }\n return count;\n }\n };\n\n return Lerc2Decode;\n })();\n\n var isPlatformLittleEndian = (function() {\n var a = new ArrayBuffer(4);\n var b = new Uint8Array(a);\n var c = new Uint32Array(a);\n c[0] = 1;\n return b[0] === 1;\n })();\n\n var Lerc = {\n /************wrapper**********************************************/\n /**\n * A wrapper for decoding both LERC1 and LERC2 byte streams capable of handling multiband pixel blocks for various pixel types.\n *\n * @alias module:Lerc\n * @param {ArrayBuffer} input The LERC input byte stream\n * @param {object} [options] The decoding options below are optional.\n * @param {number} [options.inputOffset] The number of bytes to skip in the input byte stream. A valid Lerc file is expected at that position.\n * @param {string} [options.pixelType] (LERC1 only) Default value is F32. Valid pixel types for input are U8/S8/S16/U16/S32/U32/F32.\n * @param {number} [options.noDataValue] (LERC1 only). It is recommended to use the returned mask instead of setting this value.\n * @param {boolean} [options.returnPixelInterleavedDims] (nDim LERC2 only) If true, returned dimensions are pixel-interleaved, a.k.a [p1_dim0, p1_dim1, p1_dimn, p2_dim0...], default is [p1_dim0, p2_dim0, ..., p1_dim1, p2_dim1...]\n * @returns {{width, height, pixels, pixelType, mask, statistics}}\n * @property {number} width Width of decoded image.\n * @property {number} height Height of decoded image.\n * @property {array} pixels [band1, band2, …] Each band is a typed array of width*height.\n * @property {string} pixelType The type of pixels represented in the output.\n * @property {mask} mask Typed array with a size of width*height, or null if all pixels are valid.\n * @property {array} statistics [statistics_band1, statistics_band2, …] Each element is a statistics object representing min and max values\n **/\n decode: function(encodedData, options) {\n if (!isPlatformLittleEndian) {\n throw \"Big endian system is not supported.\";\n }\n options = options || {};\n var inputOffset = options.inputOffset || 0;\n var fileIdView = new Uint8Array(encodedData, inputOffset, 10);\n var fileIdentifierString = String.fromCharCode.apply(null, fileIdView);\n var lerc, majorVersion;\n if (fileIdentifierString.trim() === \"CntZImage\") {\n lerc = LercDecode;\n majorVersion = 1;\n }\n else if (fileIdentifierString.substring(0, 5) === \"Lerc2\") {\n lerc = Lerc2Decode;\n majorVersion = 2;\n }\n else {\n throw \"Unexpected file identifier string: \" + fileIdentifierString;\n }\n\n var iPlane = 0, eof = encodedData.byteLength - 10, encodedMaskData, bandMasks = [], bandMask, maskData;\n var decodedPixelBlock = {\n width: 0,\n height: 0,\n pixels: [],\n pixelType: options.pixelType,\n mask: null,\n statistics: []\n };\n var uniqueBandMaskCount = 0;\n\n while (inputOffset < eof) {\n var result = lerc.decode(encodedData, {\n inputOffset: inputOffset,//for both lerc1 and lerc2\n encodedMaskData: encodedMaskData,//lerc1 only\n maskData: maskData,//lerc2 only\n returnMask: iPlane === 0 ? true : false,//lerc1 only\n returnEncodedMask: iPlane === 0 ? true : false,//lerc1 only\n returnFileInfo: true,//for both lerc1 and lerc2\n returnPixelInterleavedDims: options.returnPixelInterleavedDims,//for ndim lerc2 only\n pixelType: options.pixelType || null,//lerc1 only\n noDataValue: options.noDataValue || null//lerc1 only\n });\n\n inputOffset = result.fileInfo.eofOffset;\n maskData = result.maskData;//lerc2\n if (iPlane === 0) {\n encodedMaskData = result.encodedMaskData;//lerc1\n decodedPixelBlock.width = result.width;\n decodedPixelBlock.height = result.height;\n decodedPixelBlock.dimCount = result.dimCount || 1;\n //decodedPixelBlock.dimStats = decodedPixelBlock.dimStats;\n decodedPixelBlock.pixelType = result.pixelType || result.fileInfo.pixelType;\n decodedPixelBlock.mask = maskData;\n }\n if (majorVersion > 1) {\n if (maskData) {\n bandMasks.push(maskData);\n }\n if (result.fileInfo.mask && result.fileInfo.mask.numBytes > 0) {\n uniqueBandMaskCount++;\n }\n }\n\n iPlane++;\n decodedPixelBlock.pixels.push(result.pixelData);\n decodedPixelBlock.statistics.push({\n minValue: result.minValue,\n maxValue: result.maxValue,\n noDataValue: result.noDataValue,\n dimStats: result.dimStats\n });\n }\n var i, j, numPixels;\n if (majorVersion > 1 && uniqueBandMaskCount > 1) {\n numPixels = decodedPixelBlock.width * decodedPixelBlock.height;\n decodedPixelBlock.bandMasks = bandMasks;\n maskData = new Uint8Array(numPixels);\n maskData.set(bandMasks[0]);\n for (i = 1; i < bandMasks.length; i++) {\n bandMask = bandMasks[i];\n for (j = 0; j < numPixels; j++) {\n maskData[j] = maskData[j] & bandMask[j];\n }\n }\n decodedPixelBlock.maskData = maskData;\n }\n\n return decodedPixelBlock;\n }\n };\n\n if (typeof define === \"function\" && define.amd) {/* jshint ignore:line */\n //amd loaders such as dojo and requireJS\n //http://wiki.commonjs.org/wiki/Modules/AsynchronousDefinition\n define([], function() { return Lerc; });/* jshint ignore:line */\n }\n else if (typeof module !== \"undefined\" && module.exports) {/* jshint ignore:line */\n //commonJS module 1.0/1.1/1.1.1 systems, such as nodeJS\n //http://wiki.commonjs.org/wiki/Modules\n module.exports = Lerc;/* jshint ignore:line */\n }\n else {\n //assign to this, most likely window\n this.Lerc = Lerc;\n }\n\n})();\n","let init;\nlet instance;\nlet heap;\nconst IMPORT_OBJECT = {\n env: {\n emscripten_notify_memory_growth: function (index) {\n heap = new Uint8Array(instance.exports.memory.buffer);\n }\n }\n};\n/**\r\n * ZSTD (Zstandard) decoder.\r\n */\nclass ZSTDDecoder {\n init() {\n if (init) return init;\n if (typeof fetch !== 'undefined') {\n // Web.\n init = fetch('data:application/wasm;base64,' + wasm).then(response => response.arrayBuffer()).then(arrayBuffer => WebAssembly.instantiate(arrayBuffer, IMPORT_OBJECT)).then(this._init);\n } else {\n // Node.js.\n init = WebAssembly.instantiate(Buffer.from(wasm, 'base64'), IMPORT_OBJECT).then(this._init);\n }\n return init;\n }\n _init(result) {\n instance = result.instance;\n IMPORT_OBJECT.env.emscripten_notify_memory_growth(0); // initialize heap.\n }\n\n decode(array, uncompressedSize = 0) {\n if (!instance) throw new Error(`ZSTDDecoder: Await .init() before decoding.`);\n // Write compressed data into WASM memory.\n const compressedSize = array.byteLength;\n const compressedPtr = instance.exports.malloc(compressedSize);\n heap.set(array, compressedPtr);\n // Decompress into WASM memory.\n uncompressedSize = uncompressedSize || Number(instance.exports.ZSTD_findDecompressedSize(compressedPtr, compressedSize));\n const uncompressedPtr = instance.exports.malloc(uncompressedSize);\n const actualSize = instance.exports.ZSTD_decompress(uncompressedPtr, uncompressedSize, compressedPtr, compressedSize);\n // Read decompressed data and free WASM memory.\n const dec = heap.slice(uncompressedPtr, uncompressedPtr + actualSize);\n instance.exports.free(compressedPtr);\n instance.exports.free(uncompressedPtr);\n return dec;\n }\n}\n/**\r\n * BSD License\r\n *\r\n * For Zstandard software\r\n *\r\n * Copyright (c) 2016-present, Yann Collet, Facebook, Inc. All rights reserved.\r\n *\r\n * Redistribution and use in source and binary forms, with or without modification,\r\n * are permitted provided that the following conditions are met:\r\n *\r\n * * Redistributions of source code must retain the above copyright notice, this\r\n * list of conditions and the following disclaimer.\r\n *\r\n * * Redistributions in binary form must reproduce the above copyright notice,\r\n * this list of conditions and the following disclaimer in the documentation\r\n * and/or other materials provided with the distribution.\r\n *\r\n * * Neither the name Facebook nor the names of its contributors may be used to\r\n * endorse or promote products derived from this software without specific\r\n * prior written permission.\r\n *\r\n * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\r\n * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\r\n * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\r\n * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR\r\n * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\r\n * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\r\n * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON\r\n * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\r\n * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n */\n// wasm:begin\nconst wasm = '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IAMNACAEQQNxBEADQCACRQ0FIAAgAkF/aiICaiIDIAEgAmotAAA6AAAgA0EDcQ0ACwsgAkEDTQ0AA0AgACACQXxqIgJqIAEgAmooAgA2AgAgAkEDSw0ACwsgAkUNAgNAIAAgAkF/aiICaiABIAJqLQAAOgAAIAINAAsMAgsgAkEDTQ0AIAIhBANAIAMgASgCADYCACABQQRqIQEgA0EEaiEDIARBfGoiBEEDSw0ACyACQQNxIQILIAJFDQADQCADIAEtAAA6AAAgA0EBaiEDIAFBAWohASACQX9qIgINAAsLIAAL8wICAn8BfgJAIAJFDQAgACACaiIDQX9qIAE6AAAgACABOgAAIAJBA0kNACADQX5qIAE6AAAgACABOgABIANBfWogAToAACAAIAE6AAIgAkEHSQ0AIANBfGogAToAACAAIAE6AAMgAkEJSQ0AIABBACAAa0EDcSIEaiIDIAFB/wFxQYGChAhsIgE2AgAgAyACIARrQXxxIgRqIgJBfGogATYCACAEQQlJDQAgAyABNgIIIAMgATYCBCACQXhqIAE2AgAgAkF0aiABNgIAIARBGUkNACADIAE2AhggAyABNgIUIAMgATYCECADIAE2AgwgAkFwaiABNgIAIAJBbGogATYCACACQWhqIAE2AgAgAkFkaiABNgIAIAQgA0EEcUEYciIEayICQSBJDQAgAa0iBUIghiAFhCEFIAMgBGohAQNAIAEgBTcDGCABIAU3AxAgASAFNwMIIAEgBTcDACABQSBqIQEgAkFgaiICQR9LDQALCyAACy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAIajYCACADCy8BAn8gACgCBCAAKAIAQQJ0aiICLQACIQMgACACLwEAIAEgAi0AAxAFajYCACADCx8AIAAgASACKAIEEAg2AgAgARAEGiAAIAJBCGo2AgQLCAAgAGdBH3MLugUBDX8jAEEQayIKJAACfyAEQQNNBEAgCkEANgIMIApBDGogAyAEEAsaIAAgASACIApBDGpBBBAVIgBBbCAAEAMbIAAgACAESxsMAQsgAEEAIAEoAgBBAXRBAmoQECENQVQgAygAACIGQQ9xIgBBCksNABogAiAAQQVqNgIAIAMgBGoiAkF8aiEMIAJBeWohDiACQXtqIRAgAEEGaiELQQQhBSAGQQR2IQRBICAAdCIAQQFyIQkgASgCACEPQQAhAiADIQYCQANAIAlBAkggAiAPS3JFBEAgAiEHAkAgCARAA0AgBEH//wNxQf//A0YEQCAHQRhqIQcgBiAQSQR/IAZBAmoiBigAACAFdgUgBUEQaiEFIARBEHYLIQQMAQsLA0AgBEEDcSIIQQNGBEAgBUECaiEFIARBAnYhBCAHQQNqIQcMAQsLIAcgCGoiByAPSw0EIAVBAmohBQNAIAIgB0kEQCANIAJBAXRqQQA7AQAgAkEBaiECDAELCyAGIA5LQQAgBiAFQQN1aiIHIAxLG0UEQCAHKAAAIAVBB3EiBXYhBAwCCyAEQQJ2IQQLIAYhBwsCfyALQX9qIAQgAEF/anEiBiAAQQF0QX9qIgggCWsiEUkNABogBCAIcSIEQQAgESAEIABIG2shBiALCyEIIA0gAkEBdGogBkF/aiIEOwEAIAlBASAGayAEIAZBAUgbayEJA0AgCSAASARAIABBAXUhACALQX9qIQsMAQsLAn8gByAOS0EAIAcgBSAIaiIFQQN1aiIGIAxLG0UEQCAFQQdxDAELIAUgDCIGIAdrQQN0awshBSACQQFqIQIgBEUhCCAGKAAAIAVBH3F2IQQMAQsLQWwgCUEBRyAFQSBKcg0BGiABIAJBf2o2AgAgBiAFQQdqQQN1aiADawwBC0FQCyEAIApBEGokACAACwkAQQFBBSAAGwsMACAAIAEoAAA2AAALqgMBCn8jAEHwAGsiCiQAIAJBAWohDiAAQQhqIQtBgIAEIAVBf2p0QRB1IQxBACECQQEhBkEBIAV0IglBf2oiDyEIA0AgAiAORkUEQAJAIAEgAkEBdCINai8BACIHQf//A0YEQCALIAhBA3RqIAI2AgQgCEF/aiEIQQEhBwwBCyAGQQAgDCAHQRB0QRB1ShshBgsgCiANaiAHOwEAIAJBAWohAgwBCwsgACAFNgIEIAAgBjYCACAJQQN2IAlBAXZqQQNqIQxBACEAQQAhBkEAIQIDQCAGIA5GBEADQAJAIAAgCUYNACAKIAsgAEEDdGoiASgCBCIGQQF0aiICIAIvAQAiAkEBajsBACABIAUgAhAUayIIOgADIAEgAiAIQf8BcXQgCWs7AQAgASAEIAZBAnQiAmooAgA6AAIgASACIANqKAIANgIEIABBAWohAAwBCwsFIAEgBkEBdGouAQAhDUEAIQcDQCAHIA1ORQRAIAsgAkEDdGogBjYCBANAIAIgDGogD3EiAiAISw0ACyAHQQFqIQcMAQsLIAZBAWohBgwBCwsgCkHwAGokAAsjAEIAIAEQCSAAhUKHla+vmLbem55/fkLj3MqV/M7y9YV/fAsQACAAQn43AwggACABNgIACyQBAX8gAARAIAEoAgQiAgRAIAEoAgggACACEQEADwsgABAmCwsfACAAIAEgAi8BABAINgIAIAEQBBogACACQQRqNgIEC0oBAX9BoCAoAgAiASAAaiIAQX9MBEBBiCBBMDYCAEF/DwsCQCAAPwBBEHRNDQAgABBmDQBBiCBBMDYCAEF/DwtBoCAgADYCACABC9cBAQh/Qbp/IQoCQCACKAIEIgggAigCACIJaiIOIAEgAGtLDQBBbCEKIAkgBCADKAIAIgtrSw0AIAAgCWoiBCACKAIIIgxrIQ0gACABQWBqIg8gCyAJQQAQKSADIAkgC2o2AgACQAJAIAwgBCAFa00EQCANIQUMAQsgDCAEIAZrSw0CIAcgDSAFayIAaiIBIAhqIAdNBEAgBCABIAgQDxoMAgsgBCABQQAgAGsQDyEBIAIgACAIaiIINgIEIAEgAGshBAsgBCAPIAUgCEEBECkLIA4hCgsgCgubAgEBfyMAQYABayINJAAgDSADNgJ8AkAgAkEDSwRAQX8hCQwBCwJAAkACQAJAIAJBAWsOAwADAgELIAZFBEBBuH8hCQwEC0FsIQkgBS0AACICIANLDQMgACAHIAJBAnQiAmooAgAgAiAIaigCABA7IAEgADYCAEEBIQkMAwsgASAJNgIAQQAhCQwCCyAKRQRAQWwhCQwCC0EAIQkgC0UgDEEZSHINAUEIIAR0QQhqIQBBACECA0AgAiAATw0CIAJBQGshAgwAAAsAC0FsIQkgDSANQfwAaiANQfgAaiAFIAYQFSICEAMNACANKAJ4IgMgBEsNACAAIA0gDSgCfCAHIAggAxAYIAEgADYCACACIQkLIA1BgAFqJAAgCQsLACAAIAEgAhALGgsQACAALwAAIAAtAAJBEHRyCy8AAn9BuH8gAUEISQ0AGkFyIAAoAAQiAEF3Sw0AGkG4fyAAQQhqIgAgACABSxsLCwkAIAAgATsAAAsDAAELigYBBX8gACAAKAIAIgVBfnE2AgBBACAAIAVBAXZqQYQgKAIAIgQgAEYbIQECQAJAIAAoAgQiAkUNACACKAIAIgNBAXENACACQQhqIgUgA0EBdkF4aiIDQQggA0EISxtnQR9zQQJ0QYAfaiIDKAIARgRAIAMgAigCDDYCAAsgAigCCCIDBEAgAyACKAIMNgIECyACKAIMIgMEQCADIAIoAgg2AgALIAIgAigCACAAKAIAQX5xajYCAEGEICEAAkACQCABRQ0AIAEgAjYCBCABKAIAIgNBAXENASADQQF2QXhqIgNBCCADQQhLG2dBH3NBAnRBgB9qIgMoAgAgAUEIakYEQCADIAEoAgw2AgALIAEoAggiAwRAIAMgASgCDDYCBAsgASgCDCIDBEAgAyABKAIINgIAQYQgKAIAIQQLIAIgAigCACABKAIAQX5xajYCACABIARGDQAgASABKAIAQQF2akEEaiEACyAAIAI2AgALIAIoAgBBAXZBeGoiAEEIIABBCEsbZ0Efc0ECdEGAH2oiASgCACEAIAEgBTYCACACIAA2AgwgAkEANgIIIABFDQEgACAFNgIADwsCQCABRQ0AIAEoAgAiAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAigCACABQQhqRgRAIAIgASgCDDYCAAsgASgCCCICBEAgAiABKAIMNgIECyABKAIMIgIEQCACIAEoAgg2AgBBhCAoAgAhBAsgACAAKAIAIAEoAgBBfnFqIgI2AgACQCABIARHBEAgASABKAIAQQF2aiAANgIEIAAoAgAhAgwBC0GEICAANgIACyACQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgIoAgAhASACIABBCGoiAjYCACAAIAE2AgwgAEEANgIIIAFFDQEgASACNgIADwsgBUEBdkF4aiIBQQggAUEISxtnQR9zQQJ0QYAfaiICKAIAIQEgAiAAQQhqIgI2AgAgACABNgIMIABBADYCCCABRQ0AIAEgAjYCAAsLDgAgAARAIABBeGoQJQsLgAIBA38CQCAAQQ9qQXhxQYQgKAIAKAIAQQF2ayICEB1Bf0YNAAJAQYQgKAIAIgAoAgAiAUEBcQ0AIAFBAXZBeGoiAUEIIAFBCEsbZ0Efc0ECdEGAH2oiASgCACAAQQhqRgRAIAEgACgCDDYCAAsgACgCCCIBBEAgASAAKAIMNgIECyAAKAIMIgFFDQAgASAAKAIINgIAC0EBIQEgACAAKAIAIAJBAXRqIgI2AgAgAkEBcQ0AIAJBAXZBeGoiAkEIIAJBCEsbZ0Efc0ECdEGAH2oiAygCACECIAMgAEEIaiIDNgIAIAAgAjYCDCAAQQA2AgggAkUNACACIAM2AgALIAELtwIBA38CQAJAIABBASAAGyICEDgiAA0AAkACQEGEICgCACIARQ0AIAAoAgAiA0EBcQ0AIAAgA0EBcjYCACADQQF2QXhqIgFBCCABQQhLG2dBH3NBAnRBgB9qIgEoAgAgAEEIakYEQCABIAAoAgw2AgALIAAoAggiAQRAIAEgACgCDDYCBAsgACgCDCIBBEAgASAAKAIINgIACyACECchAkEAIQFBhCAoAgAhACACDQEgACAAKAIAQX5xNgIAQQAPCyACQQ9qQXhxIgMQHSICQX9GDQIgAkEHakF4cSIAIAJHBEAgACACaxAdQX9GDQMLAkBBhCAoAgAiAUUEQEGAICAANgIADAELIAAgATYCBAtBhCAgADYCACAAIANBAXRBAXI2AgAMAQsgAEUNAQsgAEEIaiEBCyABC7kDAQJ/IAAgA2ohBQJAIANBB0wEQANAIAAgBU8NAiAAIAItAAA6AAAgAEEBaiEAIAJBAWohAgwAAAsACyAEQQFGBEACQCAAIAJrIgZBB00EQCAAIAItAAA6AAAgACACLQABOgABIAAgAi0AAjoAAiAAIAItAAM6AAMgAEEEaiACIAZBAnQiBkHAHmooAgBqIgIQFyACIAZB4B5qKAIAayECDAELIAAgAhAMCyACQQhqIQIgAEEIaiEACwJAAkACQAJAIAUgAU0EQCAAIANqIQEgBEEBRyAAIAJrQQ9Kcg0BA0AgACACEAwgAkEIaiECIABBCGoiACABSQ0ACwwFCyAAIAFLBEAgACEBDAQLIARBAUcgACACa0EPSnINASAAIQMgAiEEA0AgAyAEEAwgBEEIaiEEIANBCGoiAyABSQ0ACwwCCwNAIAAgAhAHIAJBEGohAiAAQRBqIgAgAUkNAAsMAwsgACEDIAIhBANAIAMgBBAHIARBEGohBCADQRBqIgMgAUkNAAsLIAIgASAAa2ohAgsDQCABIAVPDQEgASACLQAAOgAAIAFBAWohASACQQFqIQIMAAALAAsLQQECfyAAIAAoArjgASIDNgLE4AEgACgCvOABIQQgACABNgK84AEgACABIAJqNgK44AEgACABIAQgA2tqNgLA4AELpgEBAX8gACAAKALs4QEQFjYCyOABIABCADcD+OABIABCADcDuOABIABBwOABakIANwMAIABBqNAAaiIBQYyAgOAANgIAIABBADYCmOIBIABCADcDiOEBIABCAzcDgOEBIABBrNABakHgEikCADcCACAAQbTQAWpB6BIoAgA2AgAgACABNgIMIAAgAEGYIGo2AgggACAAQaAwajYCBCAAIABBEGo2AgALYQEBf0G4fyEDAkAgAUEDSQ0AIAIgABAhIgFBA3YiADYCCCACIAFBAXE2AgQgAiABQQF2QQNxIgM2AgACQCADQX9qIgFBAksNAAJAIAFBAWsOAgEAAgtBbA8LIAAhAwsgAwsMACAAIAEgAkEAEC4LiAQCA38CfiADEBYhBCAAQQBBKBAQIQAgBCACSwRAIAQPCyABRQRAQX8PCwJAAkAgA0EBRg0AIAEoAAAiBkGo6r5pRg0AQXYhAyAGQXBxQdDUtMIBRw0BQQghAyACQQhJDQEgAEEAQSgQECEAIAEoAAQhASAAQQE2AhQgACABrTcDAEEADwsgASACIAMQLyIDIAJLDQAgACADNgIYQXIhAyABIARqIgVBf2otAAAiAkEIcQ0AIAJBIHEiBkUEQEFwIQMgBS0AACIFQacBSw0BIAVBB3GtQgEgBUEDdkEKaq2GIgdCA4h+IAd8IQggBEEBaiEECyACQQZ2IQMgAkECdiEFAkAgAkEDcUF/aiICQQJLBEBBACECDAELAkACQAJAIAJBAWsOAgECAAsgASAEai0AACECIARBAWohBAwCCyABIARqLwAAIQIgBEECaiEEDAELIAEgBGooAAAhAiAEQQRqIQQLIAVBAXEhBQJ+AkACQAJAIANBf2oiA0ECTQRAIANBAWsOAgIDAQtCfyAGRQ0DGiABIARqMQAADAMLIAEgBGovAACtQoACfAwCCyABIARqKAAArQwBCyABIARqKQAACyEHIAAgBTYCICAAIAI2AhwgACAHNwMAQQAhAyAAQQA2AhQgACAHIAggBhsiBzcDCCAAIAdCgIAIIAdCgIAIVBs+AhALIAMLWwEBf0G4fyEDIAIQFiICIAFNBH8gACACakF/ai0AACIAQQNxQQJ0QaAeaigC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C0Egak8NAQsgByAHKQNoNwMQIAcgBykDYDcDCCAEIA0gB0EIaiAHQdwAaiAPIA4gESAQEB4hCwwBCyACIARqIQggBCAKEAcgAkERTwRAIARBEGohAgNAIAIgCkEQaiIKEAcgAkEQaiICIAhJDQALCyAIIAlrIQIgByATNgJcIAkgCCAOa0sEQCAJIAggEWtLBEBBbCELDAILIBAgAiAOayICaiIKIANqIBBNBEAgCCAKIAMQDxoMAgsgCCAKQQAgAmsQDyEIIAcgAiADaiIDNgJkIAggAmshCCAOIQILIAlBEE8EQCADIAhqIQMDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALDAELAkAgCUEHTQRAIAggAi0AADoAACAIIAItAAE6AAEgCCACLQACOgACIAggAi0AAzoAAyAIQQRqIAIgCUECdCIDQcAeaigCAGoiAhAXIAIgA0HgHmooAgBrIQIgBygCZCEDDAELIAggAhAMCyADQQlJDQAgAyAIaiEDIAhBCGoiCCACQQhqIgJrQQ9MBEADQCAIIAIQDCACQQhqIQIgCEEIaiIIIANJDQAMAgALAAsDQCAIIAIQByACQRBqIQIgCEEQaiIIIANJDQALCyAHQRhqEAQaIAsgDCALEAMiAhshDCAEIAQgC2ogAhshBCAFQX9qIgUNAAsgDBADDQFBbCEMIAdBGGoQBEECSQ0BQQAhCANAIAhBA0cEQCAAIAhBAnQiAmpBrNABaiACIAdqKAJENgIAIAhBAWohCAwBCwsgBygCXCEIC0G6fyEMIA8gCGsiACANIARrSw0AIAQEfyAEIAggABALIABqBUEACyABayEMCyAHQfAAaiQAIAwLkRcCFn8FfiMAQdABayIHJAAgByAAKALw4QEiCDYCvAEgASACaiESIAggACgCgOIBaiETAkACQCAFRQRAIAEhAwwBCyAAKALE4AEhESAAKALA4AEhFSAAKAK84AEhDyAAQQE2AozhAUEAIQgDQCAIQQNHBEAgByAIQQJ0IgJqIAAgAmpBrNABaigCADYCVCAIQQFqIQgMAQsLIAcgETYCZCAHIA82AmAgByABIA9rNgJoQWwhECAHQShqIAMgBBAGEAMNASAFQQQgBUEESBshFyAHQTxqIAdBKGogACgCABATIAdBxABqIAdBKGogACgCCBATIAdBzABqIAdB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IAdB0AFqJAAgEAslACAAQgA3AgAgAEEAOwEIIABBADoACyAAIAE2AgwgACACOgAKC7QFAQN/IwBBMGsiBCQAIABB/wFqIgVBfWohBgJAIAMvAQIEQCAEQRhqIAEgAhAGIgIQAw0BIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahASOgAAIAMgBEEIaiAEQRhqEBI6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0FIAEgBEEQaiAEQRhqEBI6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBSABIARBCGogBEEYahASOgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEjoAACABIAJqIABrIQIMAwsgAyAEQRBqIARBGGoQEjoAAiADIARBCGogBEEYahASOgADIANBBGohAwwAAAsACyAEQRhqIAEgAhAGIgIQAw0AIARBEGogBEEYaiADEBwgBEEIaiAEQRhqIAMQHCAAIQMDQAJAIARBGGoQBCADIAZPckUEQCADIARBEGogBEEYahAROgAAIAMgBEEIaiAEQRhqEBE6AAEgBEEYahAERQ0BIANBAmohAwsgBUF+aiEFAn8DQEG6fyECIAMiASAFSw0EIAEgBEEQaiAEQRhqEBE6AAAgAUEBaiEDIARBGGoQBEEDRgRAQQIhAiAEQQhqDAILIAMgBUsNBCABIARBCGogBEEYahAROgABIAFBAmohA0EDIQIgBEEYahAEQQNHDQALIARBEGoLIQUgAyAFIARBGGoQEToAACABIAJqIABrIQIMAgsgAyAEQRBqIARBGGoQEToAAiADIARBCGogBEEYahAROgADIANBBGohAwwAAAsACyAEQTBqJAAgAgtpAQF/An8CQAJAIAJBB00NACABKAAAQbfIwuF+Rw0AIAAgASgABDYCmOIBQWIgAEEQaiABIAIQPiIDEAMNAhogAEKBgICAEDcDiOEBIAAgASADaiACIANrECoMAQsgACABIAIQKgtBAAsLrQMBBn8jAEGAAWsiAyQAQWIhCAJAIAJBCUkNACAAQZjQAGogAUEIaiIEIAJBeGogAEGY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wOABCwutAgIEfwF+IwBBQGoiBCQAAkACQCACQQhJDQAgASgAAEFwcUHQ1LTCAUcNACABIAIQIiEBIABCADcDCCAAQQA2AgQgACABNgIADAELIARBGGogASACEC0iAxADBEAgACADEBoMAQsgAwRAIABBuH8QGgwBCyACIAQoAjAiA2shAiABIANqIQMDQAJAIAAgAyACIARBCGoQLCIFEAMEfyAFBSACIAVBA2oiBU8NAUG4fwsQGgwCCyAGQQFqIQYgAiAFayECIAMgBWohAyAEKAIMRQ0ACyAEKAI4BEAgAkEDTQRAIABBuH8QGgwCCyADQQRqIQMLIAQoAighAiAEKQMYIQcgAEEANgIEIAAgAyABazYCACAAIAIgBmytIAcgB0J/URs3AwgLIARBQGskAAslAQF/IwBBEGsiAiQAIAIgACABEFEgAigCACEAIAJBEGokACAAC30BBH8jAEGQBGsiBCQAIARB/wE2AggCQCAEQRBqIARBCGogBEEMaiABIAIQFSIGEAMEQCAGIQUMAQtBVCEFIAQoAgwiB0EGSw0AIAMgBEEQaiAEKAIIIAcQQSIFEAMNACAAIAEgBmogAiAGayADEDwhBQsgBEGQBGokACAFC4cBAgJ/An5BABAWIQMCQANAIAEgA08EQAJAIAAoAABBcHFB0NS0wgFGBEAgACABECIiAhADRQ0BQn4PCyAAIAEQVSIEQn1WDQMgBCAFfCIFIARUIQJCfiEEIAINAyAAIAEQUiICEAMNAwsgASACayEBIAAgAmohAAwBCwtCfiAFIAEbIQQLIAQLPwIBfwF+IwBBMGsiAiQAAn5CfiACQQhqIAAgARAtDQAaQgAgAigCHEEBRg0AGiACKQMICyEDIAJBMGokACADC40BAQJ/IwBBMGsiASQAAkAgAEUNACAAKAKI4gENACABIABB/OEBaigCADYCKCABIAApAvThATcDICAAEDAgACgCqOIBIQIgASABKAIoNgIYIAEgASkDIDcDECACIAFBEGoQGyAAQQA2AqjiASABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALKgECfyMAQRBrIgAkACAAQQA2AgggAEIANwMAIAAQWCEBIABBEGokACABC4cBAQN/IwBBEGsiAiQAAkAgACgCAEUgACgCBEVzDQAgAiAAKAIINgIIIAIgACkCADcDAAJ/IAIoAgAiAQRAIAIoAghBqOMJIAERBQAMAQtBqOMJECgLIgFFDQAgASAAKQIANwL04QEgAUH84QFqIAAoAgg2AgAgARBZIAEhAwsgAkEQaiQAIAMLywEBAn8jAEEgayIBJAAgAEGBgIDAADYCtOIBIABBADYCiOIBIABBADYC7OEBIABCADcDkOIBIABBADYCpOMJIABBADYC3OIBIABCADcCzOIBIABBADYCvOIBIABBADYCxOABIABCADcCnOIBIABBpOIBakIANwIAIABBrOIBakEANgIAIAFCADcCECABQgA3AhggASABKQMYNwMIIAEgASkDEDcDACABKAIIQQh2QQFxIQIgAEEANgLg4gEgACACNgKM4gEgAUEgaiQAC3YBA38jAEEwayIBJAAgAARAIAEgAEHE0AFqIgIoAgA2AiggASAAKQK80AE3AyAgACgCACEDIAEgAigCADYCGCABIAApArzQATcDECADIAFBEGoQGyABIAEoAig2AgggASABKQMgNwMAIAAgARAbCyABQTBqJAALzAEBAX8gACABKAK00AE2ApjiASAAIAEoAgQiAjYCwOABIAAgAjYCvOABIAAgAiABKAIIaiICNgK44AEgACACNgLE4AEgASgCuNABBEAgAEKBgICAEDcDiOEBIAAgAUGk0ABqNgIMIAAgAUGUIGo2AgggACABQZwwajYCBCAAIAFBDGo2AgAgAEGs0AFqIAFBqNABaigCADYCACAAQbDQAWogAUGs0AFqKAIANgIAIABBtNABaiABQbDQAWooAgA2AgAPCyAAQgA3A4jhAQs7ACACRQRAQbp/DwsgBEUEQEFsDwsgAiAEEGAEQCAAIAEgAiADIAQgBRBhDwsgACABIAIgAyAEIAUQZQtGAQF/IwBBEGsiBSQAIAVBCGogBBAOAn8gBS0ACQRAIAAgASACIAMgBBAyDAELIAAgASACIAMgBBA0CyEAIAVBEGokACAACzQAIAAgAyAEIAUQNiIFEAMEQCAFDwsgBSAESQR/IAEgAiADIAVqIAQgBWsgABA1BUG4fwsLRgEBfyMAQRBrIgUkACAFQQhqIAQQDgJ/IAUtAAkEQCAAIAEgAiADIAQQYgwBCyAAIAEgAiADIAQQNQshACAFQRBqJAAgAAtZAQF/QQ8hAiABIABJBEAgAUEE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';\n// wasm:end\n\nexport { ZSTDDecoder };\n//# sourceMappingURL=zstddec.modern.js.map\n","import { inflate } from 'pako';\nimport Lerc from 'lerc';\nimport { ZSTDDecoder } from 'zstddec';\nimport BaseDecoder from './basedecoder.js';\nimport { LercParameters, LercAddCompression } from '../globals.js';\n\nexport const zstd = new ZSTDDecoder();\n\nexport default class LercDecoder extends BaseDecoder {\n constructor(fileDirectory) {\n super();\n\n this.planarConfiguration = typeof fileDirectory.PlanarConfiguration !== 'undefined' ? fileDirectory.PlanarConfiguration : 1;\n this.samplesPerPixel = typeof fileDirectory.SamplesPerPixel !== 'undefined' ? fileDirectory.SamplesPerPixel : 1;\n\n this.addCompression = fileDirectory.LercParameters[LercParameters.AddCompression];\n }\n\n decodeBlock(buffer) {\n switch (this.addCompression) {\n case LercAddCompression.None:\n break;\n case LercAddCompression.Deflate:\n buffer = inflate(new Uint8Array(buffer)).buffer; // eslint-disable-line no-param-reassign, prefer-destructuring\n break;\n case LercAddCompression.Zstandard:\n buffer = zstd.decode(new Uint8Array(buffer)).buffer; // eslint-disable-line no-param-reassign, prefer-destructuring\n break;\n default:\n throw new Error(`Unsupported LERC additional compression method identifier: ${this.addCompression}`);\n }\n\n const lercResult = Lerc.decode(buffer, { returnPixelInterleavedDims: this.planarConfiguration === 1 });\n const lercData = lercResult.pixels[0];\n return lercData.buffer;\n }\n}\n"],"version":3}
|