{ "version": 3, "sources": ["index.js", "lib/hash.js", "lib/algorithms/crc32.js", "lib/utils/base64-utils.js", "lib/utils/digest-utils.js", "lib/crc32-hash.js", "lib/algorithms/crc32c.js", "lib/crc32c-hash.js", "lib/algorithms/md5-wasm.js", "lib/md5-hash.js", "lib/crypto-hash.js", "lib/sha256-hash.js", "lib/node-hash.js"], "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof \"4.3.1\" !== 'undefined' ? \"4.3.1\" : 'latest';\nexport { Hash } from \"./lib/hash.js\";\nexport { CRC32Hash } from \"./lib/crc32-hash.js\";\nexport { CRC32CHash } from \"./lib/crc32c-hash.js\";\nexport { MD5Hash } from \"./lib/md5-hash.js\";\nexport { SHA256Hash } from \"./lib/sha256-hash.js\";\nexport { CryptoHash } from \"./lib/crypto-hash.js\";\nexport { NodeHash } from \"./lib/node-hash.js\";\n/**\n * Small, fast worker for CRC32, CRC32c and MD5 Hashes\n */\nexport const CryptoWorker = {\n id: 'crypto',\n name: 'CRC32, CRC32c and MD5 Hashes',\n module: 'crypto',\n version: VERSION,\n options: {\n crypto: {}\n }\n};\n/**\n * Large worker for full complement of Cryptographic Hashes\n * bundles the full crypto.js library\n */\nexport const CryptoJSWorker = {\n id: 'cryptojs',\n name: 'Cryptographic Hashes',\n module: 'crypto',\n version: VERSION,\n options: {\n cryptojs: {}\n }\n};\n// EXPERIMENTAL\nexport { encodeNumber, encodeHex, encodeBase64 } from \"./lib/utils/digest-utils.js\";\nexport { asciiToBase64, base64ToAscii } from \"./lib/utils/base64-utils.js\";\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { concatenateArrayBuffersAsync } from '@loaders.gl/loader-utils';\n/** Abstract hash base class */\nexport class Hash {\n constructor(options = {}) {\n this.hashBatches = this.hashBatches.bind(this);\n }\n async preload() {\n return;\n }\n async *hashBatches(asyncIterator, encoding = 'base64') {\n const arrayBuffers = [];\n for await (const arrayBuffer of asyncIterator) {\n arrayBuffers.push(arrayBuffer);\n yield arrayBuffer;\n }\n const output = await this.concatenate(arrayBuffers);\n const hash = await this.hash(output, encoding);\n this.options.crypto?.onEnd?.({ hash });\n }\n // HELPERS\n async concatenate(asyncIterator) {\n return await concatenateArrayBuffersAsync(asyncIterator);\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// Inspired by https://gist.github.com/wqli78/1330293/6d85cc967f32cccfcbad94ae7d088a3dcfc14bd9\n// Full crc32 docs: https://www.kernel.org/doc/Documentation/crc32.txt\n// Better JS implementation: https://stackoverflow.com/a/18639999\n/**\n * Calculates the CRC32 checksum of a string.\n */\nexport default class CRC32 {\n crc;\n constructor() {\n this.crc = ~0;\n }\n update(arrayBuffer) {\n const CRC32_TABLE = getCRC32Table();\n const byteArray = new Uint8Array(arrayBuffer);\n for (let i = 0; i < byteArray.byteLength; i++) {\n this.crc = (this.crc >>> 8) ^ CRC32_TABLE[(this.crc ^ byteArray[i]) & 0xff];\n // strings: crc = (crc >>> 8) ^ CRC32TAB[(crc ^ str.charCodeAt(i)) & 0xff];\n }\n return this;\n }\n finalize() {\n // performing final division and making crc unsigned.\n // The reason why we can't use Math.abs() ther is that 1 in bite representation is 00000000000000000000000000000001\n // and -1 is 11111111111111111111111111111111. So Math.abs() completely changes the bits there,\n // but what we need is just make JS count first 1 bit as a part of a number and not the sign marker.\n // We don't need to change anything else in this bit representation. And that's exactly what >>> does.\n this.crc = (this.crc ^ -1) >>> 0;\n return this.crc;\n }\n}\n// Note: Using a typed array here doubles the speed of the cipher\nconst CRC32TAB = Uint32Array.of(0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d);\nfunction getCRC32Table() {\n return CRC32TAB;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/**\n * `btoa()` polyfill as defined by the HTML and Infra specs, which mostly just references\n * RFC 4648.\n */\nexport function asciiToBase64(string) {\n // String conversion as required by Web IDL.\n string = `${string}`;\n // \"The btoa() method must throw an \"InvalidCharacterError\" DOMException if\n // data contains any character whose code point is greater than U+00FF.\"\n for (let i = 0; i < string.length; i++) {\n if (string.charCodeAt(i) > 255) {\n return null;\n }\n }\n let out = '';\n for (let i = 0; i < string.length; i += 3) {\n /** @type {Array[4]} */\n const groupsOfSix = [undefined, undefined, undefined, undefined];\n groupsOfSix[0] = string.charCodeAt(i) >> 2;\n groupsOfSix[1] = (string.charCodeAt(i) & 0x03) << 4;\n if (string.length > i + 1) {\n groupsOfSix[1] |= string.charCodeAt(i + 1) >> 4;\n groupsOfSix[2] = (string.charCodeAt(i + 1) & 0x0f) << 2;\n }\n if (string.length > i + 2) {\n // @ts-expect-error\n groupsOfSix[2] |= string.charCodeAt(i + 2) >> 6;\n groupsOfSix[3] = string.charCodeAt(i + 2) & 0x3f;\n }\n for (let j = 0; j < groupsOfSix.length; j++) {\n if (typeof groupsOfSix[j] === 'undefined') {\n out += '=';\n }\n else {\n out += btoaLookup(groupsOfSix[j]);\n }\n }\n }\n return out;\n}\n/**\n * Implementation of atob() according to the HTML and Infra specs, except that\n * instead of throwing INVALID_CHARACTER_ERR we return null.\n *\n * @note Forked from https://github.com/jsdom/abab under BSD 3 clause license\n */\nexport function base64ToAscii(data) {\n // Web IDL requires DOMStrings to just be converted using ECMAScript\n // ToString, which in our case amounts to using a template literal.\n data = `${data}`;\n // \"Remove all ASCII whitespace from data.\"\n data = data.replace(/[ \\t\\n\\f\\r]/g, '');\n // \"If data's code point length divides by 4 leaving no remainder, then: if data ends\n // with one or two U+003D (=) code points, then remove them from data.\"\n if (data.length % 4 === 0) {\n data = data.replace(/[=]=?$/, '');\n }\n // \"If data's code point length divides by 4 leaving a remainder of 1, then return\n // failure.\"\n //\n // \"If data contains a code point that is not one of\n //\n // U+002B (+)\n // U+002F (/)\n // ASCII alphanumeric\n //\n // then return failure.\"\n if (data.length % 4 === 1 || /[^+/0-9A-Za-z]/.test(data)) {\n return '';\n }\n // \"Let output be an empty byte sequence.\"\n let output = '';\n // \"Let buffer be an empty buffer that can have bits appended to it.\"\n //\n // We append bits via left-shift and or. accumulatedBits is used to track\n // when we've gotten to 24 bits.\n let buffer = 0;\n let accumulatedBits = 0;\n // \"Let position be a position variable for data, initially pointing at the\n // start of data.\"\n //\n // \"While position does not point past the end of data:\"\n for (let i = 0; i < data.length; i++) {\n // \"Find the code point pointed to by position in the second column of\n // Table 1: The Base 64 Alphabet of RFC 4648. Let n be the number given in\n // the first cell of the same row.\n //\n // \"Append to buffer the six bits corresponding to n, most significant bit\n // first.\"\n //\n // atobLookup() implements the table from RFC 4648.\n buffer <<= 6;\n // @ts-expect-error\n buffer |= atobLookup(data[i]);\n accumulatedBits += 6;\n // \"If buffer has accumulated 24 bits, interpret them as three 8-bit\n // big-endian numbers. Append three bytes with values equal to those\n // numbers to output, in the same order, and then empty buffer.\"\n if (accumulatedBits === 24) {\n output += String.fromCharCode((buffer & 0xff0000) >> 16);\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n buffer = accumulatedBits = 0;\n }\n // \"Advance position by 1.\"\n }\n // \"If buffer is not empty, it contains either 12 or 18 bits. If it contains\n // 12 bits, then discard the last four and interpret the remaining eight as\n // an 8-bit big-endian number. If it contains 18 bits, then discard the last\n // two and interpret the remaining 16 as two 8-bit big-endian numbers. Append\n // the one or two bytes with values equal to those one or two numbers to\n // output, in the same order.\"\n if (accumulatedBits === 12) {\n buffer >>= 4;\n output += String.fromCharCode(buffer);\n }\n else if (accumulatedBits === 18) {\n buffer >>= 2;\n output += String.fromCharCode((buffer & 0xff00) >> 8);\n output += String.fromCharCode(buffer & 0xff);\n }\n // \"Return output.\"\n return output;\n}\n/**\n * A lookup table for atob(), which converts an ASCII character to the\n * corresponding six-bit number.\n */\nconst keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\nfunction atobLookup(chr) {\n const index = keystr.indexOf(chr);\n // Throw exception if character is not in the lookup string; should not be hit in tests\n return index < 0 ? undefined : index;\n}\n/**\n * Lookup table for btoa(), which converts a six-bit number into the\n * corresponding ASCII character.\n */\nfunction btoaLookup(idx) {\n if (idx < 26) {\n return String.fromCharCode(idx + 'A'.charCodeAt(0));\n }\n if (idx < 52) {\n return String.fromCharCode(idx - 26 + 'a'.charCodeAt(0));\n }\n if (idx < 62) {\n return String.fromCharCode(idx - 52 + '0'.charCodeAt(0));\n }\n if (idx === 62) {\n return '+';\n }\n if (idx === 63) {\n return '/';\n }\n // Throw INVALID_CHARACTER_ERR exception here -- won't be hit in the teststring.\n return undefined;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { asciiToBase64, base64ToAscii } from \"./base64-utils.js\";\n/**\n * Encode a number (usually a digest from a hash function / cipher) as either hex or base64\n * Suitable for hashes like CRC32 where the number of required bits fit withing a JavaScript number.\n */\nexport function encodeNumber(number, encoding) {\n switch (encoding) {\n case 'hex':\n return convertNumberToHex(number);\n case 'base64':\n return convertHexToBase64(convertNumberToHex(number));\n default:\n throw new Error(encoding);\n }\n}\n/** Encode a hex string, aeither return hex or re-encode as base64 */\nexport function encodeHex(hex, encoding) {\n switch (encoding) {\n case 'hex':\n return hex;\n case 'base64':\n return convertHexToBase64(hex);\n default:\n throw new Error(encoding);\n }\n}\nexport function encodeBase64(base64, encoding) {\n switch (encoding) {\n case 'hex':\n return convertBase64ToHex(base64);\n case 'base64':\n return base64;\n default:\n throw new Error(encoding);\n }\n}\n/**\n * Convert a hexadecimal string to base64 encoded string representation\n */\nfunction convertHexToBase64(hexstring) {\n // Add leading zero to keep even count of digits\n // eg. f85d741 => 0f85d741\n if (hexstring.length % 2 !== 0) {\n hexstring = `0${hexstring}`;\n }\n const matches = hexstring.match(/\\w{2}/g) || [];\n const string = matches.map((a) => String.fromCharCode(parseInt(a, 16))).join('');\n // TODO - define how to handle failures\n return asciiToBase64(string) || '';\n}\n/**\n * Convert a base64 encoded string to hexadecimal encoded string representation\n */\nfunction convertBase64ToHex(base64String) {\n return [...base64ToAscii(base64String)]\n .map((c) => c.charCodeAt(0).toString(16).padStart(2, '0'))\n .join('');\n}\n/**\n * Converts a number to hex\n */\nfunction convertNumberToHex(cipher) {\n const hexString = cipher.toString(16);\n return hexString === '0' ? `0${hexString}` : hexString;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Hash } from \"./hash.js\";\nimport CRC32 from \"./algorithms/crc32.js\";\nimport { encodeNumber } from \"./utils/digest-utils.js\";\n/**\n * Calculates CRC32 Cryptographic Hash\n */\nexport class CRC32Hash extends Hash {\n name = 'crc32';\n options;\n constructor(options = {}) {\n super();\n this.options = { crypto: {}, ...options };\n this.hashBatches = this.hashBatches.bind(this);\n }\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input, encoding) {\n return this.hashSync(input, encoding);\n }\n hashSync(input, encoding) {\n const hash = new CRC32();\n hash.update(input);\n const digest = hash.finalize();\n return encodeNumber(digest, encoding);\n }\n async *hashBatches(asyncIterator, encoding = 'base64') {\n const hash = new CRC32();\n for await (const chunk of asyncIterator) {\n hash.update(chunk);\n yield chunk;\n }\n const digest = hash.finalize();\n this.options.crypto?.onEnd?.({ hash: encodeNumber(digest, encoding) });\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// From: https://gist.github.com/wqli78/1330293/6d85cc967f32cccfcbad94ae7d088a3dcfc14bd9\n// CRC32 doesn't appear to be supported natively by crypto-js\n// import {toBuffer} from '@loaders.gl/loader-utils';\n// import {calculate as sse4calculate} from 'sse4_crc32';\n/**\n * Calculates the CRC32C checksum of a string.\n */\nexport default class CRC32C {\n options;\n crc;\n constructor(options = {}) {\n this.options = options;\n this.crc = ~0;\n }\n update(arrayBuffer) {\n const byteArray = new Uint8Array(arrayBuffer);\n const CRC32_TABLE = getCRC32Table();\n for (let i = 0; i < byteArray.length; i++) {\n this.crc = CRC32_TABLE[(this.crc ^ byteArray[i]) & 0xff] ^ (this.crc >>> 8);\n }\n return this;\n }\n finalize() {\n this.crc = (this.crc ^ -1) >>> 0;\n return this.crc;\n }\n}\n/**\n * This code is a manual javascript translation of c code generated by\n * pycrc 0.7.1 (http://www.tty1.net/pycrc/). Command line used:\n * './pycrc.py --model=crc-32c --generate c --algorithm=table-driven'\n */\n// Note: Using a typed array here doubles the speed of the cipher\nconst CRC32C_TABLE = Int32Array.of(0x00000000, 0xf26b8303, 0xe13b70f7, 0x1350f3f4, 0xc79a971f, 0x35f1141c, 0x26a1e7e8, 0xd4ca64eb, 0x8ad958cf, 0x78b2dbcc, 0x6be22838, 0x9989ab3b, 0x4d43cfd0, 0xbf284cd3, 0xac78bf27, 0x5e133c24, 0x105ec76f, 0xe235446c, 0xf165b798, 0x030e349b, 0xd7c45070, 0x25afd373, 0x36ff2087, 0xc494a384, 0x9a879fa0, 0x68ec1ca3, 0x7bbcef57, 0x89d76c54, 0x5d1d08bf, 0xaf768bbc, 0xbc267848, 0x4e4dfb4b, 0x20bd8ede, 0xd2d60ddd, 0xc186fe29, 0x33ed7d2a, 0xe72719c1, 0x154c9ac2, 0x061c6936, 0xf477ea35, 0xaa64d611, 0x580f5512, 0x4b5fa6e6, 0xb93425e5, 0x6dfe410e, 0x9f95c20d, 0x8cc531f9, 0x7eaeb2fa, 0x30e349b1, 0xc288cab2, 0xd1d83946, 0x23b3ba45, 0xf779deae, 0x05125dad, 0x1642ae59, 0xe4292d5a, 0xba3a117e, 0x4851927d, 0x5b016189, 0xa96ae28a, 0x7da08661, 0x8fcb0562, 0x9c9bf696, 0x6ef07595, 0x417b1dbc, 0xb3109ebf, 0xa0406d4b, 0x522bee48, 0x86e18aa3, 0x748a09a0, 0x67dafa54, 0x95b17957, 0xcba24573, 0x39c9c670, 0x2a993584, 0xd8f2b687, 0x0c38d26c, 0xfe53516f, 0xed03a29b, 0x1f682198, 0x5125dad3, 0xa34e59d0, 0xb01eaa24, 0x42752927, 0x96bf4dcc, 0x64d4cecf, 0x77843d3b, 0x85efbe38, 0xdbfc821c, 0x2997011f, 0x3ac7f2eb, 0xc8ac71e8, 0x1c661503, 0xee0d9600, 0xfd5d65f4, 0x0f36e6f7, 0x61c69362, 0x93ad1061, 0x80fde395, 0x72966096, 0xa65c047d, 0x5437877e, 0x4767748a, 0xb50cf789, 0xeb1fcbad, 0x197448ae, 0x0a24bb5a, 0xf84f3859, 0x2c855cb2, 0xdeeedfb1, 0xcdbe2c45, 0x3fd5af46, 0x7198540d, 0x83f3d70e, 0x90a324fa, 0x62c8a7f9, 0xb602c312, 0x44694011, 0x5739b3e5, 0xa55230e6, 0xfb410cc2, 0x092a8fc1, 0x1a7a7c35, 0xe811ff36, 0x3cdb9bdd, 0xceb018de, 0xdde0eb2a, 0x2f8b6829, 0x82f63b78, 0x709db87b, 0x63cd4b8f, 0x91a6c88c, 0x456cac67, 0xb7072f64, 0xa457dc90, 0x563c5f93, 0x082f63b7, 0xfa44e0b4, 0xe9141340, 0x1b7f9043, 0xcfb5f4a8, 0x3dde77ab, 0x2e8e845f, 0xdce5075c, 0x92a8fc17, 0x60c37f14, 0x73938ce0, 0x81f80fe3, 0x55326b08, 0xa759e80b, 0xb4091bff, 0x466298fc, 0x1871a4d8, 0xea1a27db, 0xf94ad42f, 0x0b21572c, 0xdfeb33c7, 0x2d80b0c4, 0x3ed04330, 0xccbbc033, 0xa24bb5a6, 0x502036a5, 0x4370c551, 0xb11b4652, 0x65d122b9, 0x97baa1ba, 0x84ea524e, 0x7681d14d, 0x2892ed69, 0xdaf96e6a, 0xc9a99d9e, 0x3bc21e9d, 0xef087a76, 0x1d63f975, 0x0e330a81, 0xfc588982, 0xb21572c9, 0x407ef1ca, 0x532e023e, 0xa145813d, 0x758fe5d6, 0x87e466d5, 0x94b49521, 0x66df1622, 0x38cc2a06, 0xcaa7a905, 0xd9f75af1, 0x2b9cd9f2, 0xff56bd19, 0x0d3d3e1a, 0x1e6dcdee, 0xec064eed, 0xc38d26c4, 0x31e6a5c7, 0x22b65633, 0xd0ddd530, 0x0417b1db, 0xf67c32d8, 0xe52cc12c, 0x1747422f, 0x49547e0b, 0xbb3ffd08, 0xa86f0efc, 0x5a048dff, 0x8ecee914, 0x7ca56a17, 0x6ff599e3, 0x9d9e1ae0, 0xd3d3e1ab, 0x21b862a8, 0x32e8915c, 0xc083125f, 0x144976b4, 0xe622f5b7, 0xf5720643, 0x07198540, 0x590ab964, 0xab613a67, 0xb831c993, 0x4a5a4a90, 0x9e902e7b, 0x6cfbad78, 0x7fab5e8c, 0x8dc0dd8f, 0xe330a81a, 0x115b2b19, 0x020bd8ed, 0xf0605bee, 0x24aa3f05, 0xd6c1bc06, 0xc5914ff2, 0x37faccf1, 0x69e9f0d5, 0x9b8273d6, 0x88d28022, 0x7ab90321, 0xae7367ca, 0x5c18e4c9, 0x4f48173d, 0xbd23943e, 0xf36e6f75, 0x0105ec76, 0x12551f82, 0xe03e9c81, 0x34f4f86a, 0xc69f7b69, 0xd5cf889d, 0x27a40b9e, 0x79b737ba, 0x8bdcb4b9, 0x988c474d, 0x6ae7c44e, 0xbe2da0a5, 0x4c4623a6, 0x5f16d052, 0xad7d5351);\nfunction getCRC32Table() {\n return CRC32C_TABLE;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Hash } from \"./hash.js\";\nimport CRC32C from \"./algorithms/crc32c.js\";\nimport { encodeNumber } from \"./utils/digest-utils.js\";\n/**\n * A transform that calculates CRC32c Hash\n */\nexport class CRC32CHash extends Hash {\n name = 'crc32c';\n options;\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n constructor(options = {}) {\n super();\n this.options = { crypto: {}, ...options };\n }\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input, encoding) {\n return this.hashSync(input, encoding);\n }\n hashSync(input, encoding) {\n const hash = new CRC32C(this.options);\n hash.update(input);\n const digest = hash.finalize();\n return encodeNumber(digest, encoding);\n }\n // runInBatches inherited\n async *hashBatches(asyncIterator, encoding = 'base64') {\n const hash = new CRC32C(this.options);\n for await (const chunk of asyncIterator) {\n hash.update(chunk);\n yield chunk;\n }\n const digest = hash.finalize();\n this.options.crypto?.onEnd?.({ hash: encodeNumber(digest, encoding) });\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n/* eslint-disable */\n// @ts-nocheck\n/* !\n * MD5 WebAssembly\n * https://github.com/briantbutton/md5-wasm\n * (c) 2020 Brian Todd Button\n * Released under the MIT license\n */\n// *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-* *-*=* *=*-*\n// This contains two functions designed to achieve the same thing\n// -> A WebAssembly function for larger files\n// -> A JavaScript function for the others\n//\nconst atb = typeof atob === 'function' ? atob : typeof Buffer === 'function' ? nodeATOB : identity, wasmB64 = atb('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'), wasm = WebAssembly && atb !== identity ? str2AB(wasmB64).buffer : false, crypt = makeCrypt(), biteSize = 240 * 16 * 16, bounder = Math.floor(biteSize * 16 * 1.066666667), upperLimit = 268435456 - 65536, parmTypeErrStr = 'Parameter must be Buffer, ArrayBuffer or Uint8Array', tooBigErrStr = 'Parameter exceeds max size of 255.9 Mbytes';\nif (!wasm) {\n console.log('WebAssembly not available or WASM module could not be decoded; md5WASM will fall back to JavaScript');\n}\n// - - - - - - - - - - - - - - - - - - - - - - - - - - -\n// This returns a Promise-like object (I was farting around, so sue me)\n// which supports '.catch' and '.then'\nexport default function md5WASM(data) {\n var mem, memView, importObj, imports, len, buff, thenFun, catchFun, result, endTime;\n const md5JS = makeMD5JS(), md5WA = makeMD5WA(), returnObj = {}, startTime = new Date().getTime();\n returnObj['then'] = function (fun) {\n thenFun = fun;\n getThen();\n return returnObj;\n };\n returnObj['catch'] = function (fun) {\n catchFun = fun;\n return returnObj;\n };\n // Sift the incoming parameter and the environment\n // If we are good, set buff\n if (true) {\n if (data && typeof data === 'object') {\n if (typeof Buffer === 'function' && data.constructor === Buffer) {\n buff = data;\n }\n else {\n if (data.constructor === Uint8Array || data.constructor === ArrayBuffer) {\n buff = data.constructor === ArrayBuffer ? new Uint8Array(data) : data;\n }\n else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n }\n else {\n getCatch(new TypeError(parmTypeErrStr));\n }\n }\n // - - - - - - - - - - - - - - - - - - - - - - - - - -\n // Make some choices based on the size of the incoming data\n // ~ Use WebAssembly or just JavaScript\n // ~ If Webassemly, allocate appropriate memory\n //\n if (buff) {\n len = buff.length;\n if (wasm && len > bounder) {\n if (len > upperLimit) {\n getCatch(new Error(tooBigErrStr));\n }\n else {\n mem = new WebAssembly.Memory({\n initial: len > 32000000 ? (len > 64000000 ? (len > 128000000 ? 4096 : 2048) : 1024) : 512\n });\n memView = new Uint32Array(mem.buffer);\n imports = { mem: mem, log: console.log };\n importObj = { imports };\n WebAssembly.instantiate(wasm, importObj).then(giterdone);\n }\n }\n else {\n getThen(md5JS(buff));\n }\n }\n return returnObj;\n function giterdone(obj) {\n getThen(md5WA(buff, obj.instance.exports, memView));\n }\n function getThen(r) {\n var res = Boolean(r) ? r : result;\n if (Boolean(r)) {\n endTime = new Date().getTime();\n }\n if (typeof thenFun === 'function') {\n if (Boolean(res)) {\n thenFun(res, endTime - startTime);\n thenFun = catchFun = null;\n }\n }\n else {\n if (Boolean(r)) {\n result = r;\n }\n }\n }\n function getCatch(err) {\n if (typeof catchFun === 'function') {\n catchFun(err);\n }\n }\n}\nfunction makeMD5WA() {\n var loop, loops;\n var getA, setA, getB, setB, getC, setC, getD, setD, getX, setX, memView;\n var md5WA = function (message) {\n var m00, m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12, m13, m14, m15, aa, bb, cc, dd, m, k;\n var qwerty = new Date().getTime();\n var md5Used = 0;\n var a = 1732584193, b = -271733879, c = -1732584194, d = 271733878, i = 0, l = message.length * 8, len;\n len = bytesToWordsNewer(message, memView);\n memView[l >>> 5] |= 0x80 << l % 32;\n memView[(((l + 64) >>> 9) << 4) + 14] = l;\n len = (((l + 64) >>> 9) << 4) + 15;\n m = memView;\n // console.log(\"first loop took \"+((new Date().getTime())-qwerty)+\"ms\");\n while (i < len) {\n if (len > i + bounder) {\n setA(a);\n setB(b);\n setC(c);\n setD(d);\n loops(biteSize);\n i = i + biteSize * 16;\n a = getA();\n b = getB();\n c = getC();\n d = getD();\n md5Used++;\n }\n else {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n i = i + 16;\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n }\n // console.log(\"md5WA, elapsed=\"+((new Date().getTime())-qwerty)+(md5Used?\", WebAssembly called \"+md5Used+\" times\":\", WebAssembly not called\"));\n return crypt.endian([a, b, c, d]);\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n // Convert a byte array to big-endian 32-bit words\n function bytesToWordsNewer(bytes, words) {\n var i = -1, l = Math.floor((bytes.length - 1) / 4), j = 0, b0, b1, b2, b3;\n while (l - 8 > i++) {\n j = i << 2;\n words[i] = bytes[j + 0] | (bytes[j + 1] << 8) | (bytes[j + 2] << 16) | (bytes[j + 3] << 24);\n }\n i--;\n while (l > i++) {\n j = i << 2;\n b0 = typeof bytes[j + 0] === 'undefined' ? 0 : bytes[j + 0];\n b1 = typeof bytes[j + 1] === 'undefined' ? 0 : bytes[j + 1];\n b2 = typeof bytes[j + 2] === 'undefined' ? 0 : bytes[j + 2];\n b3 = typeof bytes[j + 3] === 'undefined' ? 0 : bytes[j + 3];\n words[i] = b0 | (b1 << 8) | (b2 << 16) | (b3 << 24);\n }\n return l + 1;\n }\n };\n return function (message, exports, mView, options) {\n var digestbytes;\n loops = exports.loops;\n loop = exports.loop;\n getA = exports.getA;\n getB = exports.getB;\n getC = exports.getC;\n getD = exports.getD;\n getX = exports.getX;\n setA = exports.setA;\n setB = exports.setB;\n setC = exports.setC;\n setD = exports.setD;\n setX = exports.setX;\n memView = mView;\n digestbytes = crypt.wordsToBytes(md5WA(message));\n return options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);\n };\n}\nfunction makeMD5JS() {\n var md5JS = function (message, options) {\n var m00, m01, m02, m03, m04, m05, m06, m07, m08, m09, m10, m11, m12, m13, m14, m15, aa, bb, cc, dd, m;\n var qwerty = new Date().getTime();\n // console.log(\"md5 start\");\n var a = 1732584193, b = -271733879, c = -1732584194, d = 271733878, l = message.length * 8;\n m = crypt.bytesToWords(message);\n // Swap endian\n for (var j = 0; j < m.length; j++) {\n m[j] =\n (((m[j] << 8) | (m[j] >>> 24)) & 0x00ff00ff) | (((m[j] << 24) | (m[j] >>> 8)) & 0xff00ff00);\n }\n // Padding\n m[l >>> 5] |= 0x80 << l % 32;\n m[(((l + 64) >>> 9) << 4) + 14] = l;\n for (var i = 0; i < m.length; i += 16) {\n aa = a;\n bb = b;\n cc = c;\n dd = d;\n m00 = m[i + 0] >>> 0;\n m01 = m[i + 1] >>> 0;\n m02 = m[i + 2] >>> 0;\n m03 = m[i + 3] >>> 0;\n m04 = m[i + 4] >>> 0;\n m05 = m[i + 5] >>> 0;\n m06 = m[i + 6] >>> 0;\n m07 = m[i + 7] >>> 0;\n m08 = m[i + 8] >>> 0;\n m09 = m[i + 9] >>> 0;\n m10 = m[i + 10] >>> 0;\n m11 = m[i + 11] >>> 0;\n m12 = m[i + 12] >>> 0;\n m13 = m[i + 13] >>> 0;\n m14 = m[i + 14] >>> 0;\n m15 = m[i + 15] >>> 0;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m00 - 680876936) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m01 - 389564586) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m02 + 606105819) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m03 - 1044525330) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m04 - 176418897) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m05 + 1200080426) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m06 - 1473231341) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m07 - 45705983) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m08 + 1770035416) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m09 - 1958414417) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m10 - 42063) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m11 - 1990404162) + c;\n a = ____(7, 25, a + ((b & c) | (~b & d)) + m12 + 1804603682) + b;\n d = ____(12, 20, d + ((a & b) | (~a & c)) + m13 - 40341101) + a;\n c = ____(17, 15, c + ((d & a) | (~d & b)) + m14 - 1502002290) + d;\n b = ____(22, 10, b + ((c & d) | (~c & a)) + m15 + 1236535329) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m01 - 165796510) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m06 - 1069501632) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m11 + 643717713) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m00 - 373897302) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m05 - 701558691) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m10 + 38016083) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m15 - 660478335) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m04 - 405537848) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m09 + 568446438) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m14 - 1019803690) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m03 - 187363961) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m08 + 1163531501) + c;\n a = ____(5, 27, a + ((b & d) | (c & ~d)) + m13 - 1444681467) + b;\n d = ____(9, 23, d + ((a & c) | (b & ~c)) + m02 - 51403784) + a;\n c = ____(14, 18, c + ((d & b) | (a & ~b)) + m07 + 1735328473) + d;\n b = ____(20, 12, b + ((c & a) | (d & ~a)) + m12 - 1926607734) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m05 - 378558) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m08 - 2022574463) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m11 + 1839030562) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m14 - 35309556) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m01 - 1530992060) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m04 + 1272893353) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m07 - 155497632) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m10 - 1094730640) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m13 + 681279174) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m00 - 358537222) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m03 - 722521979) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m06 + 76029189) + c;\n a = ____(4, 28, a + (b ^ c ^ d) + m09 - 640364487) + b;\n d = ____(11, 21, d + (a ^ b ^ c) + m12 - 421815835) + a;\n c = ____(16, 16, c + (d ^ a ^ b) + m15 + 530742520) + d;\n b = ____(23, 9, b + (c ^ d ^ a) + m02 - 995338651) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m00 - 198630844) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m07 + 1126891415) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m14 - 1416354905) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m05 - 57434055) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m12 + 1700485571) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m03 - 1894986606) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m10 - 1051523) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m01 - 2054922799) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m08 + 1873313359) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m15 - 30611744) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m06 - 1560198380) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m13 + 1309151649) + c;\n a = ____(6, 26, a + (c ^ (b | ~d)) + m04 - 145523070) + b;\n d = ____(10, 22, d + (b ^ (a | ~c)) + m11 - 1120210379) + a;\n c = ____(15, 17, c + (a ^ (d | ~b)) + m02 + 718787259) + d;\n b = ____(21, 11, b + (d ^ (c | ~a)) + m09 - 343485551) + c;\n a = (a + aa) >>> 0;\n b = (b + bb) >>> 0;\n c = (c + cc) >>> 0;\n d = (d + dd) >>> 0;\n }\n // console.log(\"md5JS, elapsed=\"+((new Date().getTime())-qwerty));\n return crypt.endian([a, b, c, d]);\n function ____(s, t, n) {\n return (n << s) | (n >>> t);\n }\n };\n return function (message, options) {\n var digestbytes = crypt.wordsToBytes(md5JS(message, options)), result = options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);\n return result;\n };\n}\nfunction str2AB(str) {\n var l, buff, buffView, i = -1;\n l = str.length - 1;\n buff = new ArrayBuffer(str.length);\n buffView = new Uint8Array(buff);\n while (l > i++) {\n buffView[i] = str.charCodeAt(i);\n }\n return buffView;\n}\nfunction nodeATOB(str) {\n return Buffer.from(str, 'base64').toString('binary');\n}\nfunction identity(x) {\n return x;\n}\nfunction makeCrypt() {\n var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n return {\n rotl: function (n, b) {\n return (n << b) | (n >>> (32 - b));\n },\n endian: function (n) {\n if (n.constructor == Number) {\n return (crypt.rotl(n, 8) & 0x00ff00ff) | (crypt.rotl(n, 24) & 0xff00ff00);\n }\n for (var i = 0; i < n.length; i++)\n n[i] = crypt.endian(n[i]);\n return n;\n },\n bytesToWords: function (bytes) {\n for (var words = [], i = 0, b = 0; i < bytes.length; i++, b += 8)\n words[b >>> 5] |= bytes[i] << (24 - (b % 32));\n return words;\n },\n wordsToBytes: function (words) {\n for (var bytes = [], b = 0; b < words.length * 32; b += 8)\n bytes.push((words[b >>> 5] >>> (24 - (b % 32))) & 0xff);\n return bytes;\n },\n bytesconvertNumberToHex: function (bytes) {\n for (var hex = [], i = 0; i < bytes.length; i++) {\n hex.push((bytes[i] >>> 4).toString(16));\n hex.push((bytes[i] & 0xf).toString(16));\n }\n return hex.join('');\n }\n };\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n// Fork of https://github.com/briantbutton/md5-wasm under MIT license\nimport { Hash } from \"./hash.js\";\nimport md5WASM from \"./algorithms/md5-wasm.js\";\nimport { encodeHex } from \"./utils/digest-utils.js\";\n/**\n * A transform that calculates MD5 hashes, passing data through\n */\nexport class MD5Hash extends Hash {\n name = 'md5';\n options;\n constructor(options = {}) {\n super();\n this.options = options;\n }\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input, encoding) {\n const md5Promise = new Promise((resolve, reject) => \n // @ts-expect-error\n md5WASM(input).then(resolve).catch(reject));\n const hex = await md5Promise;\n return encodeHex(hex, encoding);\n }\n}\n", "import { getJSModule, registerJSModules } from '@loaders.gl/loader-utils';\nimport { Hash } from \"./hash.js\";\n/**\n * A transform that calculates Cryptographic Hash using Crypto JS library\n * @deprecated Warning, experimental class\n */\nexport class CryptoHash extends Hash {\n name;\n options;\n /** Name of digest algorithm */\n _algorithm;\n /** CryptoJS algorithm */\n _algo;\n constructor(options) {\n super();\n this.options = options;\n registerJSModules(options?.modules);\n this._algorithm = this.options?.crypto?.algorithm;\n if (!this._algorithm) {\n throw new Error(this.name);\n }\n this.name = this._algorithm.toLowerCase();\n }\n async preload() {\n const CryptoJS = getJSModule('CryptoJS', this.name);\n this._algo = CryptoJS.algo[this._algorithm];\n }\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input, encoding) {\n await this.preload();\n const hash = this._algo.create();\n if (!hash) {\n throw new Error(this.name);\n }\n const CryptoJS = getJSModule('CryptoJS', this.name);\n // arrayBuffer is accepted, even though types and docs say no\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n const typedWordArray = CryptoJS.lib.WordArray.create(input);\n // Map our encoding constant to Crypto library\n const enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;\n return hash.update(typedWordArray).finalize().toString(enc);\n }\n async *hashBatches(asyncIterator, encoding = 'base64') {\n await this.preload();\n const CryptoJS = getJSModule('CryptoJS', this.name);\n const hash = this._algo.create();\n if (!hash) {\n throw new Error(this.name);\n }\n for await (const chunk of asyncIterator) {\n // arrayBuffer is accepted, even though types and docs say no\n // https://stackoverflow.com/questions/25567468/how-to-decrypt-an-arraybuffer\n const typedWordArray = CryptoJS.lib.WordArray.create(chunk);\n hash.update(typedWordArray);\n yield chunk;\n }\n // Map our encoding constant to Crypto library\n const enc = encoding === 'base64' ? CryptoJS.enc.Base64 : CryptoJS.enc.Hex;\n const digest = hash.finalize().toString(enc);\n this.options?.crypto?.onEnd?.({ hash: digest });\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { CryptoHash } from \"./crypto-hash.js\";\n/**\n * A transform that calculates Cryptographic Hash\n */\nexport class SHA256Hash extends CryptoHash {\n constructor(options) {\n super({ ...options, crypto: { ...options.crypto, algorithm: 'SHA256' } });\n }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\nimport { Hash } from \"./hash.js\";\n/**\n * A transform that calculates Cryptographic Hash using Node's Crypto library\n * @deprecated Only available in Node.js\n */\nexport class NodeHash extends Hash {\n name;\n options;\n constructor(options) {\n super();\n this.options = options;\n if (!globalThis.loaders.NodeHash) {\n throw new Error('install @loaders.gl/crypto on Node.js to use NodeHash');\n }\n return new globalThis.loaders.NodeHash(options);\n }\n /**\n * Atomic hash calculation\n * @returns base64 encoded hash\n */\n async hash(input, encoding) {\n throw new Error('Not implemented');\n }\n}\n"], "mappings": "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", "names": ["getCRC32Table", "i", "l", "import_loader_utils"] }