{
  "version": 3,
  "sources": ["../src/index.ts", "../src/lib/hash.ts", "../src/lib/algorithms/crc32.ts", "../src/lib/utils/base64-utils.ts", "../src/lib/utils/digest-utils.ts", "../src/lib/crc32-hash.ts", "../src/lib/algorithms/crc32c.ts", "../src/lib/crc32c-hash.ts", "../src/lib/algorithms/md5-wasm.ts", "../src/lib/md5-hash.ts", "../src/lib/crypto-hash.ts", "../src/lib/sha256-hash.ts", "../src/lib/node-hash.ts"],
  "sourcesContent": ["// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n// __VERSION__ is injected by babel-plugin-version-inline\n// @ts-ignore TS2304: Cannot find name '__VERSION__'.\nconst VERSION = typeof __VERSION__ !== 'undefined' ? __VERSION__ : 'latest';\n\nexport {Hash} from './lib/hash';\n\nexport {CRC32Hash} from './lib/crc32-hash';\nexport {CRC32CHash} from './lib/crc32c-hash';\nexport {MD5Hash} from './lib/md5-hash';\nexport {SHA256Hash} from './lib/sha256-hash';\n\nexport {CryptoHash} from './lib/crypto-hash';\nexport {NodeHash} from './lib/node-hash';\n\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/**\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\n// EXPERIMENTAL\n\nexport {encodeNumber, encodeHex, encodeBase64} from './lib/utils/digest-utils';\nexport {asciiToBase64, base64ToAscii} from './lib/utils/base64-utils';\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {concatenateArrayBuffersAsync} from '@loaders.gl/loader-utils';\n\ntype HashOptions = {\n  modules?: {[moduleName: string]: any};\n  crypto?: {\n    onEnd?: (result: {hash: string}) => any;\n  };\n};\n\n/** Abstract hash base class */\nexport abstract class Hash {\n  abstract readonly name: string;\n  abstract readonly options: HashOptions;\n\n  constructor(options: HashOptions = {}) {\n    this.hashBatches = this.hashBatches.bind(this);\n  }\n\n  async preload(): Promise<void> {\n    return;\n  }\n\n  abstract hash(arrayBuffer: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string>;\n\n  async *hashBatches(\n    asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n    encoding: 'hex' | 'base64' = 'base64'\n  ): AsyncIterable<ArrayBuffer> {\n    const arrayBuffers: ArrayBuffer[] = [];\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\n  // HELPERS\n\n  protected async concatenate(asyncIterator): Promise<ArrayBuffer> {\n    return await concatenateArrayBuffersAsync(asyncIterator);\n  }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\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: number;\n\n  constructor() {\n    this.crc = ~0;\n  }\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\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\n// Note: Using a typed array here doubles the speed of the cipher\nconst CRC32TAB = Uint32Array.of(\n  0x00000000,\n  0x77073096,\n  0xee0e612c,\n  0x990951ba,\n  0x076dc419,\n  0x706af48f,\n  0xe963a535,\n  0x9e6495a3,\n  0x0edb8832,\n  0x79dcb8a4,\n  0xe0d5e91e,\n  0x97d2d988,\n  0x09b64c2b,\n  0x7eb17cbd,\n  0xe7b82d07,\n  0x90bf1d91,\n  0x1db71064,\n  0x6ab020f2,\n  0xf3b97148,\n  0x84be41de,\n  0x1adad47d,\n  0x6ddde4eb,\n  0xf4d4b551,\n  0x83d385c7,\n  0x136c9856,\n  0x646ba8c0,\n  0xfd62f97a,\n  0x8a65c9ec,\n  0x14015c4f,\n  0x63066cd9,\n  0xfa0f3d63,\n  0x8d080df5,\n  0x3b6e20c8,\n  0x4c69105e,\n  0xd56041e4,\n  0xa2677172,\n  0x3c03e4d1,\n  0x4b04d447,\n  0xd20d85fd,\n  0xa50ab56b,\n  0x35b5a8fa,\n  0x42b2986c,\n  0xdbbbc9d6,\n  0xacbcf940,\n  0x32d86ce3,\n  0x45df5c75,\n  0xdcd60dcf,\n  0xabd13d59,\n  0x26d930ac,\n  0x51de003a,\n  0xc8d75180,\n  0xbfd06116,\n  0x21b4f4b5,\n  0x56b3c423,\n  0xcfba9599,\n  0xb8bda50f,\n  0x2802b89e,\n  0x5f058808,\n  0xc60cd9b2,\n  0xb10be924,\n  0x2f6f7c87,\n  0x58684c11,\n  0xc1611dab,\n  0xb6662d3d,\n  0x76dc4190,\n  0x01db7106,\n  0x98d220bc,\n  0xefd5102a,\n  0x71b18589,\n  0x06b6b51f,\n  0x9fbfe4a5,\n  0xe8b8d433,\n  0x7807c9a2,\n  0x0f00f934,\n  0x9609a88e,\n  0xe10e9818,\n  0x7f6a0dbb,\n  0x086d3d2d,\n  0x91646c97,\n  0xe6635c01,\n  0x6b6b51f4,\n  0x1c6c6162,\n  0x856530d8,\n  0xf262004e,\n  0x6c0695ed,\n  0x1b01a57b,\n  0x8208f4c1,\n  0xf50fc457,\n  0x65b0d9c6,\n  0x12b7e950,\n  0x8bbeb8ea,\n  0xfcb9887c,\n  0x62dd1ddf,\n  0x15da2d49,\n  0x8cd37cf3,\n  0xfbd44c65,\n  0x4db26158,\n  0x3ab551ce,\n  0xa3bc0074,\n  0xd4bb30e2,\n  0x4adfa541,\n  0x3dd895d7,\n  0xa4d1c46d,\n  0xd3d6f4fb,\n  0x4369e96a,\n  0x346ed9fc,\n  0xad678846,\n  0xda60b8d0,\n  0x44042d73,\n  0x33031de5,\n  0xaa0a4c5f,\n  0xdd0d7cc9,\n  0x5005713c,\n  0x270241aa,\n  0xbe0b1010,\n  0xc90c2086,\n  0x5768b525,\n  0x206f85b3,\n  0xb966d409,\n  0xce61e49f,\n  0x5edef90e,\n  0x29d9c998,\n  0xb0d09822,\n  0xc7d7a8b4,\n  0x59b33d17,\n  0x2eb40d81,\n  0xb7bd5c3b,\n  0xc0ba6cad,\n  0xedb88320,\n  0x9abfb3b6,\n  0x03b6e20c,\n  0x74b1d29a,\n  0xead54739,\n  0x9dd277af,\n  0x04db2615,\n  0x73dc1683,\n  0xe3630b12,\n  0x94643b84,\n  0x0d6d6a3e,\n  0x7a6a5aa8,\n  0xe40ecf0b,\n  0x9309ff9d,\n  0x0a00ae27,\n  0x7d079eb1,\n  0xf00f9344,\n  0x8708a3d2,\n  0x1e01f268,\n  0x6906c2fe,\n  0xf762575d,\n  0x806567cb,\n  0x196c3671,\n  0x6e6b06e7,\n  0xfed41b76,\n  0x89d32be0,\n  0x10da7a5a,\n  0x67dd4acc,\n  0xf9b9df6f,\n  0x8ebeeff9,\n  0x17b7be43,\n  0x60b08ed5,\n  0xd6d6a3e8,\n  0xa1d1937e,\n  0x38d8c2c4,\n  0x4fdff252,\n  0xd1bb67f1,\n  0xa6bc5767,\n  0x3fb506dd,\n  0x48b2364b,\n  0xd80d2bda,\n  0xaf0a1b4c,\n  0x36034af6,\n  0x41047a60,\n  0xdf60efc3,\n  0xa867df55,\n  0x316e8eef,\n  0x4669be79,\n  0xcb61b38c,\n  0xbc66831a,\n  0x256fd2a0,\n  0x5268e236,\n  0xcc0c7795,\n  0xbb0b4703,\n  0x220216b9,\n  0x5505262f,\n  0xc5ba3bbe,\n  0xb2bd0b28,\n  0x2bb45a92,\n  0x5cb36a04,\n  0xc2d7ffa7,\n  0xb5d0cf31,\n  0x2cd99e8b,\n  0x5bdeae1d,\n  0x9b64c2b0,\n  0xec63f226,\n  0x756aa39c,\n  0x026d930a,\n  0x9c0906a9,\n  0xeb0e363f,\n  0x72076785,\n  0x05005713,\n  0x95bf4a82,\n  0xe2b87a14,\n  0x7bb12bae,\n  0x0cb61b38,\n  0x92d28e9b,\n  0xe5d5be0d,\n  0x7cdcefb7,\n  0x0bdbdf21,\n  0x86d3d2d4,\n  0xf1d4e242,\n  0x68ddb3f8,\n  0x1fda836e,\n  0x81be16cd,\n  0xf6b9265b,\n  0x6fb077e1,\n  0x18b74777,\n  0x88085ae6,\n  0xff0f6a70,\n  0x66063bca,\n  0x11010b5c,\n  0x8f659eff,\n  0xf862ae69,\n  0x616bffd3,\n  0x166ccf45,\n  0xa00ae278,\n  0xd70dd2ee,\n  0x4e048354,\n  0x3903b3c2,\n  0xa7672661,\n  0xd06016f7,\n  0x4969474d,\n  0x3e6e77db,\n  0xaed16a4a,\n  0xd9d65adc,\n  0x40df0b66,\n  0x37d83bf0,\n  0xa9bcae53,\n  0xdebb9ec5,\n  0x47b2cf7f,\n  0x30b5ffe9,\n  0xbdbdf21c,\n  0xcabac28a,\n  0x53b39330,\n  0x24b4a3a6,\n  0xbad03605,\n  0xcdd70693,\n  0x54de5729,\n  0x23d967bf,\n  0xb3667a2e,\n  0xc4614ab8,\n  0x5d681b02,\n  0x2a6f2b94,\n  0xb40bbe37,\n  0xc30c8ea1,\n  0x5a05df1b,\n  0x2d02ef8d\n);\n\nfunction getCRC32Table() {\n  return CRC32TAB;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\n/**\n * `btoa()` polyfill as defined by the HTML and Infra specs, which mostly just references\n * RFC 4648.\n */\nexport function asciiToBase64(string: string): string | null {\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: (number | undefined)[] = [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      } else {\n        out += btoaLookup(groupsOfSix[j]);\n      }\n    }\n  }\n  return out;\n}\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: string): string {\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  } 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 */\n\nconst keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\nfunction atobLookup(chr: string): number | undefined {\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/**\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\n\nimport {asciiToBase64, base64ToAscii} from './base64-utils';\n\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: number, encoding: 'hex' | 'base64'): string {\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\n/** Encode a hex string, aeither return hex or re-encode as base64 */\nexport function encodeHex(hex: string, encoding: 'hex' | 'base64'): string {\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}\n\nexport function encodeBase64(base64: string, encoding: 'hex' | 'base64'): string {\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/**\n * Convert a hexadecimal string to base64 encoded string representation\n */\nfunction convertHexToBase64(hexstring: string): string {\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/**\n * Convert a base64 encoded string to hexadecimal encoded string representation\n */\nfunction convertBase64ToHex(base64String: string): string {\n  return [...base64ToAscii(base64String)]\n    .map((c) => c.charCodeAt(0).toString(16).padStart(2, '0'))\n    .join('');\n}\n\n/**\n * Converts a number to hex\n */\nfunction convertNumberToHex(cipher: number): string {\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\n\nimport {Hash} from './hash';\nimport CRC32 from './algorithms/crc32';\nimport {encodeNumber} from './utils/digest-utils';\n\n/**\n * Calculates CRC32 Cryptographic Hash\n */\nexport class CRC32Hash extends Hash {\n  readonly name = 'crc32';\n\n  options;\n\n  constructor(options = {}) {\n    super();\n    this.options = {crypto: {}, ...options};\n    this.hashBatches = this.hashBatches.bind(this);\n  }\n\n  /**\n   * Atomic hash calculation\n   * @returns base64 encoded hash\n   */\n  async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n    return this.hashSync(input, encoding);\n  }\n\n  hashSync(input: ArrayBuffer, encoding: 'hex' | 'base64'): string {\n    const hash = new CRC32();\n    hash.update(input);\n    const digest = hash.finalize();\n    return encodeNumber(digest, encoding);\n  }\n\n  async *hashBatches(\n    asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n    encoding: 'hex' | 'base64' = 'base64'\n  ): AsyncIterable<ArrayBuffer> {\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\n// From: https://gist.github.com/wqli78/1330293/6d85cc967f32cccfcbad94ae7d088a3dcfc14bd9\n// CRC32 doesn't appear to be supported natively by crypto-js\n\n// import {toBuffer} from '@loaders.gl/loader-utils';\n// import {calculate as sse4calculate} from 'sse4_crc32';\n\n/**\n * Calculates the CRC32C checksum of a string.\n */\nexport default class CRC32C {\n  options;\n  crc: number;\n\n  constructor(options = {}) {\n    this.options = options;\n    this.crc = ~0;\n  }\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\n  finalize() {\n    this.crc = (this.crc ^ -1) >>> 0;\n    return this.crc;\n  }\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\n// Note: Using a typed array here doubles the speed of the cipher\nconst CRC32C_TABLE = Int32Array.of(\n  0x00000000,\n  0xf26b8303,\n  0xe13b70f7,\n  0x1350f3f4,\n  0xc79a971f,\n  0x35f1141c,\n  0x26a1e7e8,\n  0xd4ca64eb,\n  0x8ad958cf,\n  0x78b2dbcc,\n  0x6be22838,\n  0x9989ab3b,\n  0x4d43cfd0,\n  0xbf284cd3,\n  0xac78bf27,\n  0x5e133c24,\n  0x105ec76f,\n  0xe235446c,\n  0xf165b798,\n  0x030e349b,\n  0xd7c45070,\n  0x25afd373,\n  0x36ff2087,\n  0xc494a384,\n  0x9a879fa0,\n  0x68ec1ca3,\n  0x7bbcef57,\n  0x89d76c54,\n  0x5d1d08bf,\n  0xaf768bbc,\n  0xbc267848,\n  0x4e4dfb4b,\n  0x20bd8ede,\n  0xd2d60ddd,\n  0xc186fe29,\n  0x33ed7d2a,\n  0xe72719c1,\n  0x154c9ac2,\n  0x061c6936,\n  0xf477ea35,\n  0xaa64d611,\n  0x580f5512,\n  0x4b5fa6e6,\n  0xb93425e5,\n  0x6dfe410e,\n  0x9f95c20d,\n  0x8cc531f9,\n  0x7eaeb2fa,\n  0x30e349b1,\n  0xc288cab2,\n  0xd1d83946,\n  0x23b3ba45,\n  0xf779deae,\n  0x05125dad,\n  0x1642ae59,\n  0xe4292d5a,\n  0xba3a117e,\n  0x4851927d,\n  0x5b016189,\n  0xa96ae28a,\n  0x7da08661,\n  0x8fcb0562,\n  0x9c9bf696,\n  0x6ef07595,\n  0x417b1dbc,\n  0xb3109ebf,\n  0xa0406d4b,\n  0x522bee48,\n  0x86e18aa3,\n  0x748a09a0,\n  0x67dafa54,\n  0x95b17957,\n  0xcba24573,\n  0x39c9c670,\n  0x2a993584,\n  0xd8f2b687,\n  0x0c38d26c,\n  0xfe53516f,\n  0xed03a29b,\n  0x1f682198,\n  0x5125dad3,\n  0xa34e59d0,\n  0xb01eaa24,\n  0x42752927,\n  0x96bf4dcc,\n  0x64d4cecf,\n  0x77843d3b,\n  0x85efbe38,\n  0xdbfc821c,\n  0x2997011f,\n  0x3ac7f2eb,\n  0xc8ac71e8,\n  0x1c661503,\n  0xee0d9600,\n  0xfd5d65f4,\n  0x0f36e6f7,\n  0x61c69362,\n  0x93ad1061,\n  0x80fde395,\n  0x72966096,\n  0xa65c047d,\n  0x5437877e,\n  0x4767748a,\n  0xb50cf789,\n  0xeb1fcbad,\n  0x197448ae,\n  0x0a24bb5a,\n  0xf84f3859,\n  0x2c855cb2,\n  0xdeeedfb1,\n  0xcdbe2c45,\n  0x3fd5af46,\n  0x7198540d,\n  0x83f3d70e,\n  0x90a324fa,\n  0x62c8a7f9,\n  0xb602c312,\n  0x44694011,\n  0x5739b3e5,\n  0xa55230e6,\n  0xfb410cc2,\n  0x092a8fc1,\n  0x1a7a7c35,\n  0xe811ff36,\n  0x3cdb9bdd,\n  0xceb018de,\n  0xdde0eb2a,\n  0x2f8b6829,\n  0x82f63b78,\n  0x709db87b,\n  0x63cd4b8f,\n  0x91a6c88c,\n  0x456cac67,\n  0xb7072f64,\n  0xa457dc90,\n  0x563c5f93,\n  0x082f63b7,\n  0xfa44e0b4,\n  0xe9141340,\n  0x1b7f9043,\n  0xcfb5f4a8,\n  0x3dde77ab,\n  0x2e8e845f,\n  0xdce5075c,\n  0x92a8fc17,\n  0x60c37f14,\n  0x73938ce0,\n  0x81f80fe3,\n  0x55326b08,\n  0xa759e80b,\n  0xb4091bff,\n  0x466298fc,\n  0x1871a4d8,\n  0xea1a27db,\n  0xf94ad42f,\n  0x0b21572c,\n  0xdfeb33c7,\n  0x2d80b0c4,\n  0x3ed04330,\n  0xccbbc033,\n  0xa24bb5a6,\n  0x502036a5,\n  0x4370c551,\n  0xb11b4652,\n  0x65d122b9,\n  0x97baa1ba,\n  0x84ea524e,\n  0x7681d14d,\n  0x2892ed69,\n  0xdaf96e6a,\n  0xc9a99d9e,\n  0x3bc21e9d,\n  0xef087a76,\n  0x1d63f975,\n  0x0e330a81,\n  0xfc588982,\n  0xb21572c9,\n  0x407ef1ca,\n  0x532e023e,\n  0xa145813d,\n  0x758fe5d6,\n  0x87e466d5,\n  0x94b49521,\n  0x66df1622,\n  0x38cc2a06,\n  0xcaa7a905,\n  0xd9f75af1,\n  0x2b9cd9f2,\n  0xff56bd19,\n  0x0d3d3e1a,\n  0x1e6dcdee,\n  0xec064eed,\n  0xc38d26c4,\n  0x31e6a5c7,\n  0x22b65633,\n  0xd0ddd530,\n  0x0417b1db,\n  0xf67c32d8,\n  0xe52cc12c,\n  0x1747422f,\n  0x49547e0b,\n  0xbb3ffd08,\n  0xa86f0efc,\n  0x5a048dff,\n  0x8ecee914,\n  0x7ca56a17,\n  0x6ff599e3,\n  0x9d9e1ae0,\n  0xd3d3e1ab,\n  0x21b862a8,\n  0x32e8915c,\n  0xc083125f,\n  0x144976b4,\n  0xe622f5b7,\n  0xf5720643,\n  0x07198540,\n  0x590ab964,\n  0xab613a67,\n  0xb831c993,\n  0x4a5a4a90,\n  0x9e902e7b,\n  0x6cfbad78,\n  0x7fab5e8c,\n  0x8dc0dd8f,\n  0xe330a81a,\n  0x115b2b19,\n  0x020bd8ed,\n  0xf0605bee,\n  0x24aa3f05,\n  0xd6c1bc06,\n  0xc5914ff2,\n  0x37faccf1,\n  0x69e9f0d5,\n  0x9b8273d6,\n  0x88d28022,\n  0x7ab90321,\n  0xae7367ca,\n  0x5c18e4c9,\n  0x4f48173d,\n  0xbd23943e,\n  0xf36e6f75,\n  0x0105ec76,\n  0x12551f82,\n  0xe03e9c81,\n  0x34f4f86a,\n  0xc69f7b69,\n  0xd5cf889d,\n  0x27a40b9e,\n  0x79b737ba,\n  0x8bdcb4b9,\n  0x988c474d,\n  0x6ae7c44e,\n  0xbe2da0a5,\n  0x4c4623a6,\n  0x5f16d052,\n  0xad7d5351\n);\n\nfunction getCRC32Table() {\n  return CRC32C_TABLE;\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Hash} from './hash';\nimport CRC32C from './algorithms/crc32c';\nimport {encodeNumber} from './utils/digest-utils';\n\n/**\n * A transform that calculates CRC32c Hash\n */\nexport class CRC32CHash extends Hash {\n  readonly name = 'crc32c';\n\n  options;\n\n  /**\n   * Atomic hash calculation\n   * @returns base64 encoded hash\n   */\n  constructor(options = {}) {\n    super();\n    this.options = {crypto: {}, ...options};\n  }\n\n  /**\n   * Atomic hash calculation\n   * @returns base64 encoded hash\n   */\n  async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n    return this.hashSync(input, encoding);\n  }\n\n  hashSync(input: ArrayBuffer, encoding: 'hex' | 'base64'): string {\n    const hash = new CRC32C(this.options);\n    hash.update(input);\n    const digest = hash.finalize();\n    return encodeNumber(digest, encoding);\n  }\n\n  // runInBatches inherited\n\n  async *hashBatches(\n    asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n    encoding: 'hex' | 'base64' = 'base64'\n  ): AsyncIterable<ArrayBuffer> {\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\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// *-*=*  *=*-* *-*=*  *=*-* *-*=*  *=*-* *-*=*  *=*-* *-*=*  *=*-* *-*=*  *=*-*\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 BASE64_LOOKUP = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',\n  wasmB64Bytes = decodeBase64Safely(\n    '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'\n  ),\n  wasm = typeof WebAssembly !== 'undefined' && wasmB64Bytes ? wasmB64Bytes.buffer : false,\n  crypt = makeCrypt(),\n  biteSize = 240 * 16 * 16,\n  bounder = Math.floor(biteSize * 16 * 1.066666667),\n  upperLimit = 268435456 - 65536,\n  parmTypeErrStr = 'Parameter must be ArrayBuffer, ArrayBufferView or string',\n  tooBigErrStr = 'Parameter exceeds max size of 255.9 Mbytes';\n\nif (!wasm) {\n  console.log(\n    'WebAssembly not available or WASM module could not be decoded; md5WASM will fall back to JavaScript'\n  );\n}\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(),\n    md5WA = makeMD5WA(),\n    returnObj = {},\n    startTime = new Date().getTime();\n\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\n  // Sift the incoming parameter and the environment\n  // If we are good, set buff\n  buff = normalizeInput(data);\n\n  if (!buff) {\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      } 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    } else {\n      getThen(md5JS(buff));\n    }\n  }\n  return returnObj;\n\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    } 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}\n\nfunction makeMD5WA() {\n  var loop, loops;\n  var getA, setA, getB, setB, getC, setC, getD, setD, getX, setX, memView;\n\n  var md5WA = function (message) {\n    var m00,\n      m01,\n      m02,\n      m03,\n      m04,\n      m05,\n      m06,\n      m07,\n      m08,\n      m09,\n      m10,\n      m11,\n      m12,\n      m13,\n      m14,\n      m15,\n      aa,\n      bb,\n      cc,\n      dd,\n      m,\n      k;\n    var qwerty = new Date().getTime();\n    var md5Used = 0;\n\n    var a = 1732584193,\n      b = -271733879,\n      c = -1732584194,\n      d = 271733878,\n      i = 0,\n      l = message.length * 8,\n      len;\n\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\n    // console.log(\"first loop took \"+((new Date().getTime())-qwerty)+\"ms\");\n\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      } 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\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\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\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\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\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\n    // console.log(\"md5WA, elapsed=\"+((new Date().getTime())-qwerty)+(md5Used?\", WebAssembly called \"+md5Used+\" times\":\", WebAssembly not called\"));\n\n    return crypt.endian([a, b, c, d]);\n\n    function ____(s, t, n) {\n      return (n << s) | (n >>> t);\n    }\n\n    // Convert a byte array to big-endian 32-bit words\n    function bytesToWordsNewer(bytes, words) {\n      var i = -1,\n        l = Math.floor((bytes.length - 1) / 4),\n        j = 0,\n        b0,\n        b1,\n        b2,\n        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\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}\n\nfunction makeMD5JS() {\n  var md5JS = function (message, options) {\n    var m00,\n      m01,\n      m02,\n      m03,\n      m04,\n      m05,\n      m06,\n      m07,\n      m08,\n      m09,\n      m10,\n      m11,\n      m12,\n      m13,\n      m14,\n      m15,\n      aa,\n      bb,\n      cc,\n      dd,\n      m;\n    var qwerty = new Date().getTime();\n\n    // console.log(\"md5 start\");\n\n    var a = 1732584193,\n      b = -271733879,\n      c = -1732584194,\n      d = 271733878,\n      l = message.length * 8;\n\n    m = crypt.bytesToWords(message);\n\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\n    // Padding\n    m[l >>> 5] |= 0x80 << (l % 32);\n    m[(((l + 64) >>> 9) << 4) + 14] = l;\n\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\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\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\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\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\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(\"md5JS, elapsed=\"+((new Date().getTime())-qwerty));\n\n    return crypt.endian([a, b, c, d]);\n\n    function ____(s, t, n) {\n      return (n << s) | (n >>> t);\n    }\n  };\n\n  return function (message, options) {\n    var digestbytes = crypt.wordsToBytes(md5JS(message, options)),\n      result =\n        options && options.asBytes ? digestbytes : crypt.bytesconvertNumberToHex(digestbytes);\n    return result;\n  };\n}\nfunction decodeBase64Safely(str) {\n  try {\n    return decodeBase64ToUint8Array(str);\n  } catch (error) {\n    return null;\n  }\n}\n\nfunction decodeBase64ToUint8Array(base64) {\n  var sanitized = base64.replace(/-/g, '+').replace(/_/g, '/');\n\n  if (typeof atob === 'function') {\n    return binaryStringToUint8Array(atob(sanitized));\n  }\n\n  return decodeBase64WithoutAtob(sanitized);\n}\n\nfunction decodeBase64WithoutAtob(base64) {\n  var paddingLength = base64.endsWith('==') ? 2 : base64.endsWith('=') ? 1 : 0,\n    byteLength = (base64.length * 3) / 4 - paddingLength,\n    bytes = new Uint8Array(byteLength),\n    byteIndex = 0,\n    i = 0,\n    enc1,\n    enc2,\n    enc3,\n    enc4;\n\n  while (i < base64.length) {\n    enc1 = BASE64_LOOKUP.indexOf(base64.charAt(i++));\n    enc2 = BASE64_LOOKUP.indexOf(base64.charAt(i++));\n    enc3 = BASE64_LOOKUP.indexOf(base64.charAt(i++));\n    enc4 = BASE64_LOOKUP.indexOf(base64.charAt(i++));\n\n    if (enc1 < 0 || enc2 < 0 || enc3 < 0 || enc4 < 0) {\n      throw new TypeError('Invalid base64 input');\n    }\n\n    bytes[byteIndex++] = (enc1 << 2) | (enc2 >> 4);\n    if (enc3 < 64 && byteIndex < byteLength) {\n      bytes[byteIndex++] = ((enc2 & 15) << 4) | (enc3 >> 2);\n    }\n    if (enc4 < 64 && byteIndex < byteLength) {\n      bytes[byteIndex++] = ((enc3 & 3) << 6) | enc4;\n    }\n  }\n\n  return bytes;\n}\n\nfunction binaryStringToUint8Array(str) {\n  var length = str.length,\n    view = new Uint8Array(length),\n    i = 0;\n\n  while (i < length) {\n    view[i] = str.charCodeAt(i);\n    i++;\n  }\n\n  return view;\n}\n\nfunction normalizeInput(data) {\n  if (data instanceof Uint8Array) {\n    return data;\n  }\n\n  if (typeof ArrayBuffer !== 'undefined' && data instanceof ArrayBuffer) {\n    return new Uint8Array(data);\n  }\n\n  if (data && typeof data === 'object' && ArrayBuffer.isView(data)) {\n    return new Uint8Array(data.buffer, data.byteOffset, data.byteLength);\n  }\n\n  if (typeof data === 'string') {\n    return new TextEncoder().encode(data);\n  }\n\n  return null;\n}\n\nfunction makeCrypt() {\n  var base64map = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\n  return {\n    rotl: function (n, b) {\n      return (n << b) | (n >>> (32 - b));\n    },\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[i] = crypt.endian(n[i]);\n      return n;\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\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\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\n// Fork of https://github.com/briantbutton/md5-wasm under MIT license\nimport {Hash} from './hash';\nimport md5WASM from './algorithms/md5-wasm';\nimport {encodeHex} from './utils/digest-utils';\n\n/**\n * A transform that calculates MD5 hashes, passing data through\n */\nexport class MD5Hash extends Hash {\n  readonly name = 'md5';\n  readonly options;\n\n  constructor(options = {}) {\n    super();\n    this.options = options;\n  }\n\n  /**\n   * Atomic hash calculation\n   * @returns base64 encoded hash\n   */\n  async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n    const md5Promise = new Promise<string>((resolve, reject) =>\n      // @ts-expect-error\n      md5WASM(input).then(resolve).catch(reject)\n    );\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';\n\ntype CryptoHashOptions = {\n  modules?: {[moduleName: string]: any};\n  crypto: {\n    algorithm: string;\n    onEnd?: (result: {hash: string}) => any;\n  };\n};\n\n/**\n * A transform that calculates Cryptographic Hash using Crypto JS library\n * @deprecated Warning, experimental class\n */\nexport class CryptoHash extends Hash {\n  readonly name;\n\n  options: CryptoHashOptions;\n  /** Name of digest algorithm */\n  private _algorithm;\n  /** CryptoJS algorithm */\n  private _algo;\n\n  constructor(options: CryptoHashOptions) {\n    super();\n    this.options = options;\n    registerJSModules(options?.modules);\n\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\n  async preload(): Promise<void> {\n    const CryptoJS = getJSModule('CryptoJS', this.name);\n    this._algo = CryptoJS.algo[this._algorithm];\n  }\n\n  /**\n   * Atomic hash calculation\n   * @returns base64 encoded hash\n   */\n  async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n    await this.preload();\n\n    const hash = this._algo.create();\n    if (!hash) {\n      throw new Error(this.name);\n    }\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\n  async *hashBatches(\n    asyncIterator: AsyncIterable<ArrayBuffer> | Iterable<ArrayBuffer>,\n    encoding: 'hex' | 'base64' = 'base64'\n  ): AsyncIterable<ArrayBuffer> {\n    await this.preload();\n    const CryptoJS = getJSModule('CryptoJS', this.name);\n\n    const hash = this._algo.create();\n    if (!hash) {\n      throw new Error(this.name);\n    }\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\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\n\nimport {CryptoHash} from './crypto-hash';\n\ntype CryptoHashOptions = {\n  modules: {[moduleName: string]: any};\n  crypto?: {\n    onEnd?: (result: {hash: string}) => any;\n  };\n};\n\n/**\n * A transform that calculates Cryptographic Hash\n */\nexport class SHA256Hash extends CryptoHash {\n  constructor(options: CryptoHashOptions) {\n    super({...options, crypto: {...options.crypto, algorithm: 'SHA256'}});\n  }\n}\n", "// loaders.gl\n// SPDX-License-Identifier: MIT\n// Copyright (c) vis.gl contributors\n\nimport {Hash} from './hash';\n\ntype NodeHashOptions = {\n  crypto: {\n    algorithm: string;\n    onEnd?: (result: {hash: string}) => any;\n  };\n};\n\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  readonly name;\n  readonly options: NodeHashOptions;\n\n  constructor(options: NodeHashOptions) {\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  /**\n   * Atomic hash calculation\n   * @returns base64 encoded hash\n   */\n  async hash(input: ArrayBuffer, encoding: 'hex' | 'base64'): Promise<string> {\n    throw new Error('Not implemented');\n  }\n}\n"],
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;;;;;;;;;;;;;;;;;;;;ACIA,0BAA2C;AAUrC,IAAgB,OAAhB,MAAoB;EAIxB,YAAY,UAAuB,CAAA,GAAE;AACnC,SAAK,cAAc,KAAK,YAAY,KAAK,IAAI;EAC/C;EAEA,MAAM,UAAO;AACX;EACF;EAIA,OAAO,YACL,eACA,WAA6B,UAAQ;AA9BzC;AAgCI,UAAM,eAA8B,CAAA;AACpC,qBAAiB,eAAe,eAAe;AAC7C,mBAAa,KAAK,WAAW;AAC7B,YAAM;IACR;AACA,UAAM,SAAS,MAAM,KAAK,YAAY,YAAY;AAClD,UAAM,OAAO,MAAM,KAAK,KAAK,QAAQ,QAAQ;AAC7C,qBAAK,QAAQ,WAAb,mBAAqB,UAArB,4BAA6B,EAAC,KAAI;EACpC;;EAIU,MAAM,YAAY,eAAa;AACvC,WAAO,UAAM,kDAA6B,aAAa;EACzD;;;;ACpCF,IAAqB,QAArB,MAA0B;EACxB;EAEA,cAAA;AACE,SAAK,MAAM,CAAC;EACd;EAEA,OAAO,aAAW;AAChB,UAAM,cAAc,cAAa;AACjC,UAAM,YAAY,IAAI,WAAW,WAAW;AAC5C,aAAS,IAAI,GAAG,IAAI,UAAU,YAAY,KAAK;AAC7C,WAAK,MAAO,KAAK,QAAQ,IAAK,aAAa,KAAK,MAAM,UAAU,CAAC,KAAK,GAAI;IAE5E;AACA,WAAO;EACT;EAEA,WAAQ;AAMN,SAAK,OAAO,KAAK,MAAM,QAAQ;AAC/B,WAAO,KAAK;EACd;;AAIF,IAAM,WAAW,YAAY,GAC3B,GACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,SAAU;AAGZ,SAAS,gBAAa;AACpB,SAAO;AACT;;;ACpSM,SAAU,cAAc,QAAc;AAE1C,WAAS,GAAG;AAGZ,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACtC,QAAI,OAAO,WAAW,CAAC,IAAI,KAAK;AAC9B,aAAO;IACT;EACF;AACA,MAAI,MAAM;AACV,WAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK,GAAG;AAEzC,UAAM,cAAsC,CAAC,QAAW,QAAW,QAAW,MAAS;AACvF,gBAAY,CAA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ACA,UACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,UACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,YACA,YACA,WACA,YACA,WACA,WACA,YACA,YACA,WACA,WACA,YACA,UACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,WACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,WACA,UACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UACA,WACA,YACA,WACA,YACA,YACA,WACA,YACA,YACA,YACA,YACA,YACA,YACA,YACA,UAAU;AAGZ,SAASA,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",
  "names": ["getCRC32Table", "i", "l", "import_loader_utils"]
}
