{"version":3,"file":"anno2.min.js","mappings":"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AAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,KAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC/D,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAAS,OAC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zC,GAAgB,CAC1B,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,KACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,MAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,OAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,KACA,MAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,OAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,MAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,IACA,IACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,MACA,OAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,MACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,OAEH,CACG,OACA,OACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,MACA,MACA,QAEH,CACG,MACA,OACA,QAEH,CACG,OACA,OACA,QAEH,CACG,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","sources":["webpack://tutimcore-frontend/./node_modules/core-js/internals/a-callable.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/a-constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/a-possible-prototype.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/add-to-unscopables.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/advance-string-index.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/an-instance.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/an-object.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-buffer-basic-detection.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-buffer-non-extensible.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-buffer-view-core.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-buffer.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-copy-within.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-fill.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-for-each.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-from-constructor-and-list.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-from.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-includes.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-iteration.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-last-index-of.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-method-has-species-support.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-method-is-strict.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-reduce.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-slice-simple.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-slice.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-sort.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-species-constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/array-species-create.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/call-with-safe-iteration-closing.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/check-correctness-of-iteration.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/classof-raw.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/classof.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/collection-strong.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/collection-weak.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/collection.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/correct-is-regexp-logic.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/correct-prototype-getter.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/create-html.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/create-iter-result-object.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/create-property-descriptor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/create-property.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/define-built-in.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/define-built-ins.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/define-global-property.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/delete-property-or-throw.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/descriptors.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/document-all.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/document-create-element.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/dom-iterables.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/dom-token-list-prototype.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-ff-version.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-is-browser.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-is-deno.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-is-ie-or-edge.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-is-ios-pebble.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-is-ios.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-is-node.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-is-webos-webkit.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-user-agent.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-v8-version.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/engine-webkit-version.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/enum-bug-keys.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/export.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/fails.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/freezing.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/function-apply.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/function-bind-context.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/function-bind-native.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/function-bind.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/function-call.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/function-name.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/function-uncurry-this-raw.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/function-uncurry-this.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/get-built-in.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/get-iterator-method.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/get-iterator.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/get-method.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/get-substitution.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/global.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/has-own-property.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/hidden-keys.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/host-report-errors.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/html.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/ie8-dom-define.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/ieee754.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/indexed-object.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/inherit-if-required.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/inspect-source.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/internal-metadata.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/internal-state.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-array-iterator-method.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-array.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-big-int-array.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-callable.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-forced.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-integral-number.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-object.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-pure.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-regexp.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/is-symbol.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/iterate.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/iterator-close.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/iterator-create-constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/iterator-define.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/iterators-core.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/iterators.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/length-of-array-like.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/make-built-in.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/math-trunc.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/microtask.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/new-promise-capability.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/not-a-regexp.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-assign.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-create.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-define-properties.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-define-property.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-get-own-property-names-external.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-get-prototype-of.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-is-extensible.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-keys-internal.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-keys.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-set-prototype-of.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-to-array.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/object-to-string.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/own-keys.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/path.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/perform.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/promise-constructor-detection.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/promise-native-constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/promise-resolve.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/promise-statics-incorrect-iteration.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/queue.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/regexp-exec-abstract.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/regexp-exec.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/regexp-flags.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/regexp-get-flags.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/regexp-sticky-helpers.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/regexp-unsupported-dot-all.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/regexp-unsupported-ncg.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/require-object-coercible.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/set-species.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/set-to-string-tag.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/shared-key.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/shared-store.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/shared.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/species-constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/string-html-forced.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/string-multibyte.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/string-repeat.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/symbol-define-to-primitive.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/symbol-registry-detection.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/task.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/this-number-value.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-absolute-index.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-big-int.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-index.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-indexed-object.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-length.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-object.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-offset.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-positive-integer.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-primitive.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-property-key.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-string-tag-support.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/to-string.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/try-to-string.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/typed-array-constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/typed-array-constructors-require-wrappers.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/typed-array-from-species-and-list.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/typed-array-from.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/typed-array-species-constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/uid.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/validate-arguments-length.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/well-known-symbol-define.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/well-known-symbol-wrapped.js","webpack://tutimcore-frontend/./node_modules/core-js/internals/well-known-symbol.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array-buffer.constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.concat.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.fill.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.filter.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.from.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.includes.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.iterator.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.join.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.map.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.array.slice.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.function.name.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.json.stringify.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.json.to-string-tag.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.map.constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.map.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.math.to-string-tag.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.number.to-fixed.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.object.assign.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.object.entries.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.object.get-own-property-symbols.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.object.get-prototype-of.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.object.keys.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.object.to-string.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.promise.all-settled.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.promise.all.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.promise.catch.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.promise.constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.promise.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.promise.race.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.promise.reject.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.promise.resolve.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.reflect.construct.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.regexp.exec.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.regexp.test.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.regexp.to-string.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.set.constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.set.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.string.fontsize.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.string.includes.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.string.iterator.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.string.replace.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.string.starts-with.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.symbol.async-iterator.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.symbol.constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.symbol.description.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.symbol.for.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.symbol.iterator.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.symbol.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.symbol.key-for.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.symbol.to-string-tag.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.copy-within.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.every.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.fill.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.filter.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.find-index.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.find.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.float32-array.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.for-each.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.from.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.includes.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.index-of.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.iterator.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.join.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.last-index-of.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.map.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.reduce-right.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.reduce.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.reverse.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.set.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.slice.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.some.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.sort.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.subarray.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.to-locale-string.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.to-string.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.uint16-array.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.uint32-array.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.typed-array.uint8-array.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.weak-set.constructor.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/es.weak-set.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/web.dom-collections.for-each.js","webpack://tutimcore-frontend/./node_modules/core-js/modules/web.dom-collections.iterator.js","webpack://tutimcore-frontend/webpack/bootstrap","webpack://tutimcore-frontend/webpack/runtime/global","webpack://tutimcore-frontend/./node_modules/whatwg-fetch/fetch.js","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/utils/prettyByte.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/ExtData.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/DecodeError.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/utils/int.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/timestamp.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/utils/utf8.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/ExtensionCodec.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/utils/typedArrays.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/CachedKeyDecoder.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/Decoder.mjs","webpack://tutimcore-frontend/./node_modules/@msgpack/msgpack/dist.es5+esm/decode.mjs","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/common/utils.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/common/EfficientArray.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/polygon/PolygonContainer.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/polygon/polygonDecoder/eliasOmegaDecoder.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/polygon/polygonDecoder/polygonDecoder.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/polygon/reviveUtils.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/mask/pngDecoder/png_decoder.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/mask/pngDecoder/decodePNG.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/common/fetchUtils.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/common/turboColorMap.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/heatmap/heatmapFilter.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/common/OSDOverlayPlugin.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/simplify.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/density/densityFilter.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/label/labelFilter.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/polygon/polygonFilter.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/mask/maskFilter.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/circles/circleFilter.ts","webpack://tutimcore-frontend/./wwwroot/ts/lib/anno2/Anno2Manager.ts","webpack://tutimcore-frontend/./wwwroot/ts/src/anno2.ts"],"sourcesContent":["var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isConstructor = require('../internals/is-constructor');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsConstructor(argument) is true`\nmodule.exports = function (argument) {\n if (isConstructor(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a constructor');\n};\n","var isCallable = require('../internals/is-callable');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument) {\n if (typeof argument == 'object' || isCallable(argument)) return argument;\n throw $TypeError(\"Can't set \" + $String(argument) + ' as a prototype');\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar create = require('../internals/object-create');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar UNSCOPABLES = wellKnownSymbol('unscopables');\nvar ArrayPrototype = Array.prototype;\n\n// Array.prototype[@@unscopables]\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\nif (ArrayPrototype[UNSCOPABLES] == undefined) {\n defineProperty(ArrayPrototype, UNSCOPABLES, {\n configurable: true,\n value: create(null)\n });\n}\n\n// add a key to Array.prototype[@@unscopables]\nmodule.exports = function (key) {\n ArrayPrototype[UNSCOPABLES][key] = true;\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.es/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var isPrototypeOf = require('../internals/object-is-prototype-of');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it, Prototype) {\n if (isPrototypeOf(Prototype, it)) return it;\n throw $TypeError('Incorrect invocation');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","// eslint-disable-next-line es/no-typed-arrays -- safe\nmodule.exports = typeof ArrayBuffer != 'undefined' && typeof DataView != 'undefined';\n","// FF26- bug: ArrayBuffers are non-extensible, but Object.isExtensible does not report it\nvar fails = require('../internals/fails');\n\nmodule.exports = fails(function () {\n if (typeof ArrayBuffer == 'function') {\n var buffer = new ArrayBuffer(8);\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-defineproperty -- safe\n if (Object.isExtensible(buffer)) Object.defineProperty(buffer, 'a', { value: 8 });\n }\n});\n","'use strict';\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar tryToString = require('../internals/try-to-string');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineProperty = require('../internals/object-define-property').f;\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar uid = require('../internals/uid');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar Uint8ClampedArray = global.Uint8ClampedArray;\nvar Uint8ClampedArrayPrototype = Uint8ClampedArray && Uint8ClampedArray.prototype;\nvar TypedArray = Int8Array && getPrototypeOf(Int8Array);\nvar TypedArrayPrototype = Int8ArrayPrototype && getPrototypeOf(Int8ArrayPrototype);\nvar ObjectPrototype = Object.prototype;\nvar TypeError = global.TypeError;\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar TYPED_ARRAY_TAG = uid('TYPED_ARRAY_TAG');\nvar TYPED_ARRAY_CONSTRUCTOR = 'TypedArrayConstructor';\n// Fixing native typed arrays in Opera Presto crashes the browser, see #595\nvar NATIVE_ARRAY_BUFFER_VIEWS = NATIVE_ARRAY_BUFFER && !!setPrototypeOf && classof(global.opera) !== 'Opera';\nvar TYPED_ARRAY_TAG_REQUIRED = false;\nvar NAME, Constructor, Prototype;\n\nvar TypedArrayConstructorsList = {\n Int8Array: 1,\n Uint8Array: 1,\n Uint8ClampedArray: 1,\n Int16Array: 2,\n Uint16Array: 2,\n Int32Array: 4,\n Uint32Array: 4,\n Float32Array: 4,\n Float64Array: 8\n};\n\nvar BigIntArrayConstructorsList = {\n BigInt64Array: 8,\n BigUint64Array: 8\n};\n\nvar isView = function isView(it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return klass === 'DataView'\n || hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar getTypedArrayConstructor = function (it) {\n var proto = getPrototypeOf(it);\n if (!isObject(proto)) return;\n var state = getInternalState(proto);\n return (state && hasOwn(state, TYPED_ARRAY_CONSTRUCTOR)) ? state[TYPED_ARRAY_CONSTRUCTOR] : getTypedArrayConstructor(proto);\n};\n\nvar isTypedArray = function (it) {\n if (!isObject(it)) return false;\n var klass = classof(it);\n return hasOwn(TypedArrayConstructorsList, klass)\n || hasOwn(BigIntArrayConstructorsList, klass);\n};\n\nvar aTypedArray = function (it) {\n if (isTypedArray(it)) return it;\n throw TypeError('Target is not a typed array');\n};\n\nvar aTypedArrayConstructor = function (C) {\n if (isCallable(C) && (!setPrototypeOf || isPrototypeOf(TypedArray, C))) return C;\n throw TypeError(tryToString(C) + ' is not a typed array constructor');\n};\n\nvar exportTypedArrayMethod = function (KEY, property, forced, options) {\n if (!DESCRIPTORS) return;\n if (forced) for (var ARRAY in TypedArrayConstructorsList) {\n var TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor.prototype, KEY)) try {\n delete TypedArrayConstructor.prototype[KEY];\n } catch (error) {\n // old WebKit bug - some methods are non-configurable\n try {\n TypedArrayConstructor.prototype[KEY] = property;\n } catch (error2) { /* empty */ }\n }\n }\n if (!TypedArrayPrototype[KEY] || forced) {\n defineBuiltIn(TypedArrayPrototype, KEY, forced ? property\n : NATIVE_ARRAY_BUFFER_VIEWS && Int8ArrayPrototype[KEY] || property, options);\n }\n};\n\nvar exportTypedArrayStaticMethod = function (KEY, property, forced) {\n var ARRAY, TypedArrayConstructor;\n if (!DESCRIPTORS) return;\n if (setPrototypeOf) {\n if (forced) for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && hasOwn(TypedArrayConstructor, KEY)) try {\n delete TypedArrayConstructor[KEY];\n } catch (error) { /* empty */ }\n }\n if (!TypedArray[KEY] || forced) {\n // V8 ~ Chrome 49-50 `%TypedArray%` methods are non-writable non-configurable\n try {\n return defineBuiltIn(TypedArray, KEY, forced ? property : NATIVE_ARRAY_BUFFER_VIEWS && TypedArray[KEY] || property);\n } catch (error) { /* empty */ }\n } else return;\n }\n for (ARRAY in TypedArrayConstructorsList) {\n TypedArrayConstructor = global[ARRAY];\n if (TypedArrayConstructor && (!TypedArrayConstructor[KEY] || forced)) {\n defineBuiltIn(TypedArrayConstructor, KEY, property);\n }\n }\n};\n\nfor (NAME in TypedArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n else NATIVE_ARRAY_BUFFER_VIEWS = false;\n}\n\nfor (NAME in BigIntArrayConstructorsList) {\n Constructor = global[NAME];\n Prototype = Constructor && Constructor.prototype;\n if (Prototype) enforceInternalState(Prototype)[TYPED_ARRAY_CONSTRUCTOR] = Constructor;\n}\n\n// WebKit bug - typed arrays constructors prototype is Object.prototype\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !isCallable(TypedArray) || TypedArray === Function.prototype) {\n // eslint-disable-next-line no-shadow -- safe\n TypedArray = function TypedArray() {\n throw TypeError('Incorrect invocation');\n };\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME], TypedArray);\n }\n}\n\nif (!NATIVE_ARRAY_BUFFER_VIEWS || !TypedArrayPrototype || TypedArrayPrototype === ObjectPrototype) {\n TypedArrayPrototype = TypedArray.prototype;\n if (NATIVE_ARRAY_BUFFER_VIEWS) for (NAME in TypedArrayConstructorsList) {\n if (global[NAME]) setPrototypeOf(global[NAME].prototype, TypedArrayPrototype);\n }\n}\n\n// WebKit bug - one more object in Uint8ClampedArray prototype chain\nif (NATIVE_ARRAY_BUFFER_VIEWS && getPrototypeOf(Uint8ClampedArrayPrototype) !== TypedArrayPrototype) {\n setPrototypeOf(Uint8ClampedArrayPrototype, TypedArrayPrototype);\n}\n\nif (DESCRIPTORS && !hasOwn(TypedArrayPrototype, TO_STRING_TAG)) {\n TYPED_ARRAY_TAG_REQUIRED = true;\n defineProperty(TypedArrayPrototype, TO_STRING_TAG, { get: function () {\n return isObject(this) ? this[TYPED_ARRAY_TAG] : undefined;\n } });\n for (NAME in TypedArrayConstructorsList) if (global[NAME]) {\n createNonEnumerableProperty(global[NAME], TYPED_ARRAY_TAG, NAME);\n }\n}\n\nmodule.exports = {\n NATIVE_ARRAY_BUFFER_VIEWS: NATIVE_ARRAY_BUFFER_VIEWS,\n TYPED_ARRAY_TAG: TYPED_ARRAY_TAG_REQUIRED && TYPED_ARRAY_TAG,\n aTypedArray: aTypedArray,\n aTypedArrayConstructor: aTypedArrayConstructor,\n exportTypedArrayMethod: exportTypedArrayMethod,\n exportTypedArrayStaticMethod: exportTypedArrayStaticMethod,\n getTypedArrayConstructor: getTypedArrayConstructor,\n isView: isView,\n isTypedArray: isTypedArray,\n TypedArray: TypedArray,\n TypedArrayPrototype: TypedArrayPrototype\n};\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_ARRAY_BUFFER = require('../internals/array-buffer-basic-detection');\nvar FunctionName = require('../internals/function-name');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar fails = require('../internals/fails');\nvar anInstance = require('../internals/an-instance');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar IEEE754 = require('../internals/ieee754');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar defineProperty = require('../internals/object-define-property').f;\nvar arrayFill = require('../internals/array-fill');\nvar arraySlice = require('../internals/array-slice-simple');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar DATA_VIEW = 'DataView';\nvar PROTOTYPE = 'prototype';\nvar WRONG_LENGTH = 'Wrong length';\nvar WRONG_INDEX = 'Wrong index';\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\nvar $ArrayBuffer = NativeArrayBuffer;\nvar ArrayBufferPrototype = $ArrayBuffer && $ArrayBuffer[PROTOTYPE];\nvar $DataView = global[DATA_VIEW];\nvar DataViewPrototype = $DataView && $DataView[PROTOTYPE];\nvar ObjectPrototype = Object.prototype;\nvar Array = global.Array;\nvar RangeError = global.RangeError;\nvar fill = uncurryThis(arrayFill);\nvar reverse = uncurryThis([].reverse);\n\nvar packIEEE754 = IEEE754.pack;\nvar unpackIEEE754 = IEEE754.unpack;\n\nvar packInt8 = function (number) {\n return [number & 0xFF];\n};\n\nvar packInt16 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF];\n};\n\nvar packInt32 = function (number) {\n return [number & 0xFF, number >> 8 & 0xFF, number >> 16 & 0xFF, number >> 24 & 0xFF];\n};\n\nvar unpackInt32 = function (buffer) {\n return buffer[3] << 24 | buffer[2] << 16 | buffer[1] << 8 | buffer[0];\n};\n\nvar packFloat32 = function (number) {\n return packIEEE754(number, 23, 4);\n};\n\nvar packFloat64 = function (number) {\n return packIEEE754(number, 52, 8);\n};\n\nvar addGetter = function (Constructor, key) {\n defineProperty(Constructor[PROTOTYPE], key, { get: function () { return getInternalState(this)[key]; } });\n};\n\nvar get = function (view, count, index, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = arraySlice(bytes, start, start + count);\n return isLittleEndian ? pack : reverse(pack);\n};\n\nvar set = function (view, count, index, conversion, value, isLittleEndian) {\n var intIndex = toIndex(index);\n var store = getInternalState(view);\n if (intIndex + count > store.byteLength) throw RangeError(WRONG_INDEX);\n var bytes = getInternalState(store.buffer).bytes;\n var start = intIndex + store.byteOffset;\n var pack = conversion(+value);\n for (var i = 0; i < count; i++) bytes[start + i] = pack[isLittleEndian ? i : count - i - 1];\n};\n\nif (!NATIVE_ARRAY_BUFFER) {\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n var byteLength = toIndex(length);\n setInternalState(this, {\n bytes: fill(Array(byteLength), 0),\n byteLength: byteLength\n });\n if (!DESCRIPTORS) this.byteLength = byteLength;\n };\n\n ArrayBufferPrototype = $ArrayBuffer[PROTOTYPE];\n\n $DataView = function DataView(buffer, byteOffset, byteLength) {\n anInstance(this, DataViewPrototype);\n anInstance(buffer, ArrayBufferPrototype);\n var bufferLength = getInternalState(buffer).byteLength;\n var offset = toIntegerOrInfinity(byteOffset);\n if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset');\n byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);\n if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);\n setInternalState(this, {\n buffer: buffer,\n byteLength: byteLength,\n byteOffset: offset\n });\n if (!DESCRIPTORS) {\n this.buffer = buffer;\n this.byteLength = byteLength;\n this.byteOffset = offset;\n }\n };\n\n DataViewPrototype = $DataView[PROTOTYPE];\n\n if (DESCRIPTORS) {\n addGetter($ArrayBuffer, 'byteLength');\n addGetter($DataView, 'buffer');\n addGetter($DataView, 'byteLength');\n addGetter($DataView, 'byteOffset');\n }\n\n defineBuiltIns(DataViewPrototype, {\n getInt8: function getInt8(byteOffset) {\n return get(this, 1, byteOffset)[0] << 24 >> 24;\n },\n getUint8: function getUint8(byteOffset) {\n return get(this, 1, byteOffset)[0];\n },\n getInt16: function getInt16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return (bytes[1] << 8 | bytes[0]) << 16 >> 16;\n },\n getUint16: function getUint16(byteOffset /* , littleEndian */) {\n var bytes = get(this, 2, byteOffset, arguments.length > 1 ? arguments[1] : undefined);\n return bytes[1] << 8 | bytes[0];\n },\n getInt32: function getInt32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined));\n },\n getUint32: function getUint32(byteOffset /* , littleEndian */) {\n return unpackInt32(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined)) >>> 0;\n },\n getFloat32: function getFloat32(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 4, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 23);\n },\n getFloat64: function getFloat64(byteOffset /* , littleEndian */) {\n return unpackIEEE754(get(this, 8, byteOffset, arguments.length > 1 ? arguments[1] : undefined), 52);\n },\n setInt8: function setInt8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setUint8: function setUint8(byteOffset, value) {\n set(this, 1, byteOffset, packInt8, value);\n },\n setInt16: function setInt16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint16: function setUint16(byteOffset, value /* , littleEndian */) {\n set(this, 2, byteOffset, packInt16, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setInt32: function setInt32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setUint32: function setUint32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packInt32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat32: function setFloat32(byteOffset, value /* , littleEndian */) {\n set(this, 4, byteOffset, packFloat32, value, arguments.length > 2 ? arguments[2] : undefined);\n },\n setFloat64: function setFloat64(byteOffset, value /* , littleEndian */) {\n set(this, 8, byteOffset, packFloat64, value, arguments.length > 2 ? arguments[2] : undefined);\n }\n });\n} else {\n var INCORRECT_ARRAY_BUFFER_NAME = PROPER_FUNCTION_NAME && NativeArrayBuffer.name !== ARRAY_BUFFER;\n /* eslint-disable no-new -- required for testing */\n if (!fails(function () {\n NativeArrayBuffer(1);\n }) || !fails(function () {\n new NativeArrayBuffer(-1);\n }) || fails(function () {\n new NativeArrayBuffer();\n new NativeArrayBuffer(1.5);\n new NativeArrayBuffer(NaN);\n return NativeArrayBuffer.length != 1 || INCORRECT_ARRAY_BUFFER_NAME && !CONFIGURABLE_FUNCTION_NAME;\n })) {\n /* eslint-enable no-new -- required for testing */\n $ArrayBuffer = function ArrayBuffer(length) {\n anInstance(this, ArrayBufferPrototype);\n return new NativeArrayBuffer(toIndex(length));\n };\n\n $ArrayBuffer[PROTOTYPE] = ArrayBufferPrototype;\n\n for (var keys = getOwnPropertyNames(NativeArrayBuffer), j = 0, key; keys.length > j;) {\n if (!((key = keys[j++]) in $ArrayBuffer)) {\n createNonEnumerableProperty($ArrayBuffer, key, NativeArrayBuffer[key]);\n }\n }\n\n ArrayBufferPrototype.constructor = $ArrayBuffer;\n } else if (INCORRECT_ARRAY_BUFFER_NAME && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(NativeArrayBuffer, 'name', ARRAY_BUFFER);\n }\n\n // WebKit bug - the same parent prototype for typed arrays and data view\n if (setPrototypeOf && getPrototypeOf(DataViewPrototype) !== ObjectPrototype) {\n setPrototypeOf(DataViewPrototype, ObjectPrototype);\n }\n\n // iOS Safari 7.x bug\n var testView = new $DataView(new $ArrayBuffer(2));\n var $setInt8 = uncurryThis(DataViewPrototype.setInt8);\n testView.setInt8(0, 2147483648);\n testView.setInt8(1, 2147483649);\n if (testView.getInt8(0) || !testView.getInt8(1)) defineBuiltIns(DataViewPrototype, {\n setInt8: function setInt8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n },\n setUint8: function setUint8(byteOffset, value) {\n $setInt8(this, byteOffset, value << 24 >> 24);\n }\n }, { unsafe: true });\n}\n\nsetToStringTag($ArrayBuffer, ARRAY_BUFFER);\nsetToStringTag($DataView, DATA_VIEW);\n\nmodule.exports = {\n ArrayBuffer: $ArrayBuffer,\n DataView: $DataView\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar deletePropertyOrThrow = require('../internals/delete-property-or-throw');\n\nvar min = Math.min;\n\n// `Array.prototype.copyWithin` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.copywithin\n// eslint-disable-next-line es/no-array-prototype-copywithin -- safe\nmodule.exports = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var to = toAbsoluteIndex(target, len);\n var from = toAbsoluteIndex(start, len);\n var end = arguments.length > 2 ? arguments[2] : undefined;\n var count = min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);\n var inc = 1;\n if (from < to && to < from + count) {\n inc = -1;\n from += count - 1;\n to += count - 1;\n }\n while (count-- > 0) {\n if (from in O) O[to] = O[from];\n else deletePropertyOrThrow(O, to);\n to += inc;\n from += inc;\n } return O;\n};\n","'use strict';\nvar toObject = require('../internals/to-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.fill` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.fill\nmodule.exports = function fill(value /* , start = 0, end = @length */) {\n var O = toObject(this);\n var length = lengthOfArrayLike(O);\n var argumentsLength = arguments.length;\n var index = toAbsoluteIndex(argumentsLength > 1 ? arguments[1] : undefined, length);\n var end = argumentsLength > 2 ? arguments[2] : undefined;\n var endPos = end === undefined ? length : toAbsoluteIndex(end, length);\n while (endPos > index) O[index++] = value;\n return O;\n};\n","'use strict';\nvar $forEach = require('../internals/array-iteration').forEach;\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar STRICT_METHOD = arrayMethodIsStrict('forEach');\n\n// `Array.prototype.forEach` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.foreach\nmodule.exports = !STRICT_METHOD ? function forEach(callbackfn /* , thisArg */) {\n return $forEach(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n// eslint-disable-next-line es/no-array-prototype-foreach -- safe\n} : [].forEach;\n","var lengthOfArrayLike = require('../internals/length-of-array-like');\n\nmodule.exports = function (Constructor, list) {\n var index = 0;\n var length = lengthOfArrayLike(list);\n var result = new Constructor(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n","'use strict';\nvar bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar toObject = require('../internals/to-object');\nvar callWithSafeIterationClosing = require('../internals/call-with-safe-iteration-closing');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isConstructor = require('../internals/is-constructor');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $Array = Array;\n\n// `Array.from` method implementation\n// https://tc39.es/ecma262/#sec-array.from\nmodule.exports = function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {\n var O = toObject(arrayLike);\n var IS_CONSTRUCTOR = isConstructor(this);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n if (mapping) mapfn = bind(mapfn, argumentsLength > 2 ? arguments[2] : undefined);\n var iteratorMethod = getIteratorMethod(O);\n var index = 0;\n var length, result, step, iterator, next, value;\n // if the target is not iterable or it's an array with the default iterator - use a simple case\n if (iteratorMethod && !(this === $Array && isArrayIteratorMethod(iteratorMethod))) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n result = IS_CONSTRUCTOR ? new this() : [];\n for (;!(step = call(next, iterator)).done; index++) {\n value = mapping ? callWithSafeIterationClosing(iterator, mapfn, [step.value, index], true) : step.value;\n createProperty(result, index, value);\n }\n } else {\n length = lengthOfArrayLike(O);\n result = IS_CONSTRUCTOR ? new this(length) : $Array(length);\n for (;length > index; index++) {\n value = mapping ? mapfn(O[index], index) : O[index];\n createProperty(result, index, value);\n }\n }\n result.length = index;\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var bind = require('../internals/function-bind-context');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arraySpeciesCreate = require('../internals/array-species-create');\n\nvar push = uncurryThis([].push);\n\n// `Array.prototype.{ forEach, map, filter, some, every, find, findIndex, filterReject }` methods implementation\nvar createMethod = function (TYPE) {\n var IS_MAP = TYPE == 1;\n var IS_FILTER = TYPE == 2;\n var IS_SOME = TYPE == 3;\n var IS_EVERY = TYPE == 4;\n var IS_FIND_INDEX = TYPE == 6;\n var IS_FILTER_REJECT = TYPE == 7;\n var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;\n return function ($this, callbackfn, that, specificCreate) {\n var O = toObject($this);\n var self = IndexedObject(O);\n var boundFunction = bind(callbackfn, that);\n var length = lengthOfArrayLike(self);\n var index = 0;\n var create = specificCreate || arraySpeciesCreate;\n var target = IS_MAP ? create($this, length) : IS_FILTER || IS_FILTER_REJECT ? create($this, 0) : undefined;\n var value, result;\n for (;length > index; index++) if (NO_HOLES || index in self) {\n value = self[index];\n result = boundFunction(value, index, O);\n if (TYPE) {\n if (IS_MAP) target[index] = result; // map\n else if (result) switch (TYPE) {\n case 3: return true; // some\n case 5: return value; // find\n case 6: return index; // findIndex\n case 2: push(target, value); // filter\n } else switch (TYPE) {\n case 4: return false; // every\n case 7: push(target, value); // filterReject\n }\n }\n }\n return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : target;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.forEach` method\n // https://tc39.es/ecma262/#sec-array.prototype.foreach\n forEach: createMethod(0),\n // `Array.prototype.map` method\n // https://tc39.es/ecma262/#sec-array.prototype.map\n map: createMethod(1),\n // `Array.prototype.filter` method\n // https://tc39.es/ecma262/#sec-array.prototype.filter\n filter: createMethod(2),\n // `Array.prototype.some` method\n // https://tc39.es/ecma262/#sec-array.prototype.some\n some: createMethod(3),\n // `Array.prototype.every` method\n // https://tc39.es/ecma262/#sec-array.prototype.every\n every: createMethod(4),\n // `Array.prototype.find` method\n // https://tc39.es/ecma262/#sec-array.prototype.find\n find: createMethod(5),\n // `Array.prototype.findIndex` method\n // https://tc39.es/ecma262/#sec-array.prototype.findIndex\n findIndex: createMethod(6),\n // `Array.prototype.filterReject` method\n // https://github.com/tc39/proposal-array-filtering\n filterReject: createMethod(7)\n};\n","'use strict';\n/* eslint-disable es/no-array-prototype-lastindexof -- safe */\nvar apply = require('../internals/function-apply');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar min = Math.min;\nvar $lastIndexOf = [].lastIndexOf;\nvar NEGATIVE_ZERO = !!$lastIndexOf && 1 / [1].lastIndexOf(1, -0) < 0;\nvar STRICT_METHOD = arrayMethodIsStrict('lastIndexOf');\nvar FORCED = NEGATIVE_ZERO || !STRICT_METHOD;\n\n// `Array.prototype.lastIndexOf` method implementation\n// https://tc39.es/ecma262/#sec-array.prototype.lastindexof\nmodule.exports = FORCED ? function lastIndexOf(searchElement /* , fromIndex = @[*-1] */) {\n // convert -0 to +0\n if (NEGATIVE_ZERO) return apply($lastIndexOf, this, arguments) || 0;\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var index = length - 1;\n if (arguments.length > 1) index = min(index, toIntegerOrInfinity(arguments[1]));\n if (index < 0) index = length + index;\n for (;index >= 0; index--) if (index in O && O[index] === searchElement) return index || 0;\n return -1;\n} : $lastIndexOf;\n","var fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (METHOD_NAME) {\n // We can't use this feature detection in V8 since it causes\n // deoptimization and serious performance degradation\n // https://github.com/zloirock/core-js/issues/677\n return V8_VERSION >= 51 || !fails(function () {\n var array = [];\n var constructor = array.constructor = {};\n constructor[SPECIES] = function () {\n return { foo: 1 };\n };\n return array[METHOD_NAME](Boolean).foo !== 1;\n });\n};\n","'use strict';\nvar fails = require('../internals/fails');\n\nmodule.exports = function (METHOD_NAME, argument) {\n var method = [][METHOD_NAME];\n return !!method && fails(function () {\n // eslint-disable-next-line no-useless-call -- required for testing\n method.call(null, argument || function () { return 1; }, 1);\n });\n};\n","var aCallable = require('../internals/a-callable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\nvar $TypeError = TypeError;\n\n// `Array.prototype.{ reduce, reduceRight }` methods implementation\nvar createMethod = function (IS_RIGHT) {\n return function (that, callbackfn, argumentsLength, memo) {\n aCallable(callbackfn);\n var O = toObject(that);\n var self = IndexedObject(O);\n var length = lengthOfArrayLike(O);\n var index = IS_RIGHT ? length - 1 : 0;\n var i = IS_RIGHT ? -1 : 1;\n if (argumentsLength < 2) while (true) {\n if (index in self) {\n memo = self[index];\n index += i;\n break;\n }\n index += i;\n if (IS_RIGHT ? index < 0 : length <= index) {\n throw $TypeError('Reduce of empty array with no initial value');\n }\n }\n for (;IS_RIGHT ? index >= 0 : length > index; index += i) if (index in self) {\n memo = callbackfn(memo, self[index], index, O);\n }\n return memo;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.reduce` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduce\n left: createMethod(false),\n // `Array.prototype.reduceRight` method\n // https://tc39.es/ecma262/#sec-array.prototype.reduceright\n right: createMethod(true)\n};\n","var toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar createProperty = require('../internals/create-property');\n\nvar $Array = Array;\nvar max = Math.max;\n\nmodule.exports = function (O, start, end) {\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n var result = $Array(max(fin - k, 0));\n for (var n = 0; k < fin; k++, n++) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis([].slice);\n","var arraySlice = require('../internals/array-slice-simple');\n\nvar floor = Math.floor;\n\nvar mergeSort = function (array, comparefn) {\n var length = array.length;\n var middle = floor(length / 2);\n return length < 8 ? insertionSort(array, comparefn) : merge(\n array,\n mergeSort(arraySlice(array, 0, middle), comparefn),\n mergeSort(arraySlice(array, middle), comparefn),\n comparefn\n );\n};\n\nvar insertionSort = function (array, comparefn) {\n var length = array.length;\n var i = 1;\n var element, j;\n\n while (i < length) {\n j = i;\n element = array[i];\n while (j && comparefn(array[j - 1], element) > 0) {\n array[j] = array[--j];\n }\n if (j !== i++) array[j] = element;\n } return array;\n};\n\nvar merge = function (array, left, right, comparefn) {\n var llength = left.length;\n var rlength = right.length;\n var lindex = 0;\n var rindex = 0;\n\n while (lindex < llength || rindex < rlength) {\n array[lindex + rindex] = (lindex < llength && rindex < rlength)\n ? comparefn(left[lindex], right[rindex]) <= 0 ? left[lindex++] : right[rindex++]\n : lindex < llength ? left[lindex++] : right[rindex++];\n } return array;\n};\n\nmodule.exports = mergeSort;\n","var isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\n\n// a part of `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray) {\n var C;\n if (isArray(originalArray)) {\n C = originalArray.constructor;\n // cross-realm fallback\n if (isConstructor(C) && (C === $Array || isArray(C.prototype))) C = undefined;\n else if (isObject(C)) {\n C = C[SPECIES];\n if (C === null) C = undefined;\n }\n } return C === undefined ? $Array : C;\n};\n","var arraySpeciesConstructor = require('../internals/array-species-constructor');\n\n// `ArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#sec-arrayspeciescreate\nmodule.exports = function (originalArray, length) {\n return new (arraySpeciesConstructor(originalArray))(length === 0 ? 0 : length);\n};\n","var anObject = require('../internals/an-object');\nvar iteratorClose = require('../internals/iterator-close');\n\n// call something on iterator step with safe closing on error\nmodule.exports = function (iterator, fn, value, ENTRIES) {\n try {\n return ENTRIES ? fn(anObject(value)[0], value[1]) : fn(value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar SAFE_CLOSING = false;\n\ntry {\n var called = 0;\n var iteratorWithReturn = {\n next: function () {\n return { done: !!called++ };\n },\n 'return': function () {\n SAFE_CLOSING = true;\n }\n };\n iteratorWithReturn[ITERATOR] = function () {\n return this;\n };\n // eslint-disable-next-line es/no-array-from, no-throw-literal -- required for testing\n Array.from(iteratorWithReturn, function () { throw 2; });\n} catch (error) { /* empty */ }\n\nmodule.exports = function (exec, SKIP_CLOSING) {\n if (!SKIP_CLOSING && !SAFE_CLOSING) return false;\n var ITERATION_SUPPORT = false;\n try {\n var object = {};\n object[ITERATOR] = function () {\n return {\n next: function () {\n return { done: ITERATION_SUPPORT = true };\n }\n };\n };\n exec(object);\n } catch (error) { /* empty */ }\n return ITERATION_SUPPORT;\n};\n","var uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nvar toString = uncurryThisRaw({}.toString);\nvar stringSlice = uncurryThisRaw(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar isCallable = require('../internals/is-callable');\nvar classofRaw = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar $Object = Object;\n\n// ES3 wrong here\nvar CORRECT_ARGUMENTS = classofRaw(function () { return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function (it, key) {\n try {\n return it[key];\n } catch (error) { /* empty */ }\n};\n\n// getting tag from ES6+ `Object.prototype.toString`\nmodule.exports = TO_STRING_TAG_SUPPORT ? classofRaw : function (it) {\n var O, tag, result;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (tag = tryGet(O = $Object(it), TO_STRING_TAG)) == 'string' ? tag\n // builtinTag case\n : CORRECT_ARGUMENTS ? classofRaw(O)\n // ES3 arguments fallback\n : (result = classofRaw(O)) == 'Object' && isCallable(O.callee) ? 'Arguments' : result;\n};\n","'use strict';\nvar defineProperty = require('../internals/object-define-property').f;\nvar create = require('../internals/object-create');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar bind = require('../internals/function-bind-context');\nvar anInstance = require('../internals/an-instance');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar iterate = require('../internals/iterate');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar setSpecies = require('../internals/set-species');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar fastKey = require('../internals/internal-metadata').fastKey;\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n index: create(null),\n first: undefined,\n last: undefined,\n size: 0\n });\n if (!DESCRIPTORS) that.size = 0;\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n var previous, index;\n // change existing entry\n if (entry) {\n entry.value = value;\n // create new entry\n } else {\n state.last = entry = {\n index: index = fastKey(key, true),\n key: key,\n value: value,\n previous: previous = state.last,\n next: undefined,\n removed: false\n };\n if (!state.first) state.first = entry;\n if (previous) previous.next = entry;\n if (DESCRIPTORS) state.size++;\n else that.size++;\n // add to index\n if (index !== 'F') state.index[index] = entry;\n } return that;\n };\n\n var getEntry = function (that, key) {\n var state = getInternalState(that);\n // fast case\n var index = fastKey(key);\n var entry;\n if (index !== 'F') return state.index[index];\n // frozen object case\n for (entry = state.first; entry; entry = entry.next) {\n if (entry.key == key) return entry;\n }\n };\n\n defineBuiltIns(Prototype, {\n // `{ Map, Set }.prototype.clear()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.clear\n // https://tc39.es/ecma262/#sec-set.prototype.clear\n clear: function clear() {\n var that = this;\n var state = getInternalState(that);\n var data = state.index;\n var entry = state.first;\n while (entry) {\n entry.removed = true;\n if (entry.previous) entry.previous = entry.previous.next = undefined;\n delete data[entry.index];\n entry = entry.next;\n }\n state.first = state.last = undefined;\n if (DESCRIPTORS) state.size = 0;\n else that.size = 0;\n },\n // `{ Map, Set }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.delete\n // https://tc39.es/ecma262/#sec-set.prototype.delete\n 'delete': function (key) {\n var that = this;\n var state = getInternalState(that);\n var entry = getEntry(that, key);\n if (entry) {\n var next = entry.next;\n var prev = entry.previous;\n delete state.index[entry.index];\n entry.removed = true;\n if (prev) prev.next = next;\n if (next) next.previous = prev;\n if (state.first == entry) state.first = next;\n if (state.last == entry) state.last = prev;\n if (DESCRIPTORS) state.size--;\n else that.size--;\n } return !!entry;\n },\n // `{ Map, Set }.prototype.forEach(callbackfn, thisArg = undefined)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.foreach\n // https://tc39.es/ecma262/#sec-set.prototype.foreach\n forEach: function forEach(callbackfn /* , that = undefined */) {\n var state = getInternalState(this);\n var boundFunction = bind(callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n var entry;\n while (entry = entry ? entry.next : state.first) {\n boundFunction(entry.value, entry.key, this);\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n }\n },\n // `{ Map, Set}.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-map.prototype.has\n // https://tc39.es/ecma262/#sec-set.prototype.has\n has: function has(key) {\n return !!getEntry(this, key);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `Map.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-map.prototype.get\n get: function get(key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n },\n // `Map.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-map.prototype.set\n set: function set(key, value) {\n return define(this, key === 0 ? 0 : key, value);\n }\n } : {\n // `Set.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-set.prototype.add\n add: function add(value) {\n return define(this, value = value === 0 ? 0 : value, value);\n }\n });\n if (DESCRIPTORS) defineProperty(Prototype, 'size', {\n get: function () {\n return getInternalState(this).size;\n }\n });\n return Constructor;\n },\n setStrong: function (Constructor, CONSTRUCTOR_NAME, IS_MAP) {\n var ITERATOR_NAME = CONSTRUCTOR_NAME + ' Iterator';\n var getInternalCollectionState = internalStateGetterFor(CONSTRUCTOR_NAME);\n var getInternalIteratorState = internalStateGetterFor(ITERATOR_NAME);\n // `{ Map, Set }.prototype.{ keys, values, entries, @@iterator }()` methods\n // https://tc39.es/ecma262/#sec-map.prototype.entries\n // https://tc39.es/ecma262/#sec-map.prototype.keys\n // https://tc39.es/ecma262/#sec-map.prototype.values\n // https://tc39.es/ecma262/#sec-map.prototype-@@iterator\n // https://tc39.es/ecma262/#sec-set.prototype.entries\n // https://tc39.es/ecma262/#sec-set.prototype.keys\n // https://tc39.es/ecma262/#sec-set.prototype.values\n // https://tc39.es/ecma262/#sec-set.prototype-@@iterator\n defineIterator(Constructor, CONSTRUCTOR_NAME, function (iterated, kind) {\n setInternalState(this, {\n type: ITERATOR_NAME,\n target: iterated,\n state: getInternalCollectionState(iterated),\n kind: kind,\n last: undefined\n });\n }, function () {\n var state = getInternalIteratorState(this);\n var kind = state.kind;\n var entry = state.last;\n // revert to the last existing entry\n while (entry && entry.removed) entry = entry.previous;\n // get next entry\n if (!state.target || !(state.last = entry = entry ? entry.next : state.state.first)) {\n // or finish the iteration\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n // return step by kind\n if (kind == 'keys') return createIterResultObject(entry.key, false);\n if (kind == 'values') return createIterResultObject(entry.value, false);\n return createIterResultObject([entry.key, entry.value], false);\n }, IS_MAP ? 'entries' : 'values', !IS_MAP, true);\n\n // `{ Map, Set }.prototype[@@species]` accessors\n // https://tc39.es/ecma262/#sec-get-map-@@species\n // https://tc39.es/ecma262/#sec-get-set-@@species\n setSpecies(CONSTRUCTOR_NAME);\n }\n};\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIns = require('../internals/define-built-ins');\nvar getWeakData = require('../internals/internal-metadata').getWeakData;\nvar anInstance = require('../internals/an-instance');\nvar anObject = require('../internals/an-object');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar iterate = require('../internals/iterate');\nvar ArrayIterationModule = require('../internals/array-iteration');\nvar hasOwn = require('../internals/has-own-property');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar setInternalState = InternalStateModule.set;\nvar internalStateGetterFor = InternalStateModule.getterFor;\nvar find = ArrayIterationModule.find;\nvar findIndex = ArrayIterationModule.findIndex;\nvar splice = uncurryThis([].splice);\nvar id = 0;\n\n// fallback for uncaught frozen keys\nvar uncaughtFrozenStore = function (store) {\n return store.frozen || (store.frozen = new UncaughtFrozenStore());\n};\n\nvar UncaughtFrozenStore = function () {\n this.entries = [];\n};\n\nvar findUncaughtFrozen = function (store, key) {\n return find(store.entries, function (it) {\n return it[0] === key;\n });\n};\n\nUncaughtFrozenStore.prototype = {\n get: function (key) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) return entry[1];\n },\n has: function (key) {\n return !!findUncaughtFrozen(this, key);\n },\n set: function (key, value) {\n var entry = findUncaughtFrozen(this, key);\n if (entry) entry[1] = value;\n else this.entries.push([key, value]);\n },\n 'delete': function (key) {\n var index = findIndex(this.entries, function (it) {\n return it[0] === key;\n });\n if (~index) splice(this.entries, index, 1);\n return !!~index;\n }\n};\n\nmodule.exports = {\n getConstructor: function (wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER) {\n var Constructor = wrapper(function (that, iterable) {\n anInstance(that, Prototype);\n setInternalState(that, {\n type: CONSTRUCTOR_NAME,\n id: id++,\n frozen: undefined\n });\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n });\n\n var Prototype = Constructor.prototype;\n\n var getInternalState = internalStateGetterFor(CONSTRUCTOR_NAME);\n\n var define = function (that, key, value) {\n var state = getInternalState(that);\n var data = getWeakData(anObject(key), true);\n if (data === true) uncaughtFrozenStore(state).set(key, value);\n else data[state.id] = value;\n return that;\n };\n\n defineBuiltIns(Prototype, {\n // `{ WeakMap, WeakSet }.prototype.delete(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.delete\n // https://tc39.es/ecma262/#sec-weakset.prototype.delete\n 'delete': function (key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state)['delete'](key);\n return data && hasOwn(data, state.id) && delete data[state.id];\n },\n // `{ WeakMap, WeakSet }.prototype.has(key)` methods\n // https://tc39.es/ecma262/#sec-weakmap.prototype.has\n // https://tc39.es/ecma262/#sec-weakset.prototype.has\n has: function has(key) {\n var state = getInternalState(this);\n if (!isObject(key)) return false;\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).has(key);\n return data && hasOwn(data, state.id);\n }\n });\n\n defineBuiltIns(Prototype, IS_MAP ? {\n // `WeakMap.prototype.get(key)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.get\n get: function get(key) {\n var state = getInternalState(this);\n if (isObject(key)) {\n var data = getWeakData(key);\n if (data === true) return uncaughtFrozenStore(state).get(key);\n return data ? data[state.id] : undefined;\n }\n },\n // `WeakMap.prototype.set(key, value)` method\n // https://tc39.es/ecma262/#sec-weakmap.prototype.set\n set: function set(key, value) {\n return define(this, key, value);\n }\n } : {\n // `WeakSet.prototype.add(value)` method\n // https://tc39.es/ecma262/#sec-weakset.prototype.add\n add: function add(value) {\n return define(this, value, true);\n }\n });\n\n return Constructor;\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar isForced = require('../internals/is-forced');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar InternalMetadataModule = require('../internals/internal-metadata');\nvar iterate = require('../internals/iterate');\nvar anInstance = require('../internals/an-instance');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar isObject = require('../internals/is-object');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nmodule.exports = function (CONSTRUCTOR_NAME, wrapper, common) {\n var IS_MAP = CONSTRUCTOR_NAME.indexOf('Map') !== -1;\n var IS_WEAK = CONSTRUCTOR_NAME.indexOf('Weak') !== -1;\n var ADDER = IS_MAP ? 'set' : 'add';\n var NativeConstructor = global[CONSTRUCTOR_NAME];\n var NativePrototype = NativeConstructor && NativeConstructor.prototype;\n var Constructor = NativeConstructor;\n var exported = {};\n\n var fixMethod = function (KEY) {\n var uncurriedNativeMethod = uncurryThis(NativePrototype[KEY]);\n defineBuiltIn(NativePrototype, KEY,\n KEY == 'add' ? function add(value) {\n uncurriedNativeMethod(this, value === 0 ? 0 : value);\n return this;\n } : KEY == 'delete' ? function (key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'get' ? function get(key) {\n return IS_WEAK && !isObject(key) ? undefined : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : KEY == 'has' ? function has(key) {\n return IS_WEAK && !isObject(key) ? false : uncurriedNativeMethod(this, key === 0 ? 0 : key);\n } : function set(key, value) {\n uncurriedNativeMethod(this, key === 0 ? 0 : key, value);\n return this;\n }\n );\n };\n\n var REPLACE = isForced(\n CONSTRUCTOR_NAME,\n !isCallable(NativeConstructor) || !(IS_WEAK || NativePrototype.forEach && !fails(function () {\n new NativeConstructor().entries().next();\n }))\n );\n\n if (REPLACE) {\n // create collection constructor\n Constructor = common.getConstructor(wrapper, CONSTRUCTOR_NAME, IS_MAP, ADDER);\n InternalMetadataModule.enable();\n } else if (isForced(CONSTRUCTOR_NAME, true)) {\n var instance = new Constructor();\n // early implementations not supports chaining\n var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;\n // V8 ~ Chromium 40- weak-collections throws on primitives, but should return false\n var THROWS_ON_PRIMITIVES = fails(function () { instance.has(1); });\n // most early implementations doesn't supports iterables, most modern - not close it correctly\n // eslint-disable-next-line no-new -- required for testing\n var ACCEPT_ITERABLES = checkCorrectnessOfIteration(function (iterable) { new NativeConstructor(iterable); });\n // for early implementations -0 and +0 not the same\n var BUGGY_ZERO = !IS_WEAK && fails(function () {\n // V8 ~ Chromium 42- fails only with 5+ elements\n var $instance = new NativeConstructor();\n var index = 5;\n while (index--) $instance[ADDER](index, index);\n return !$instance.has(-0);\n });\n\n if (!ACCEPT_ITERABLES) {\n Constructor = wrapper(function (dummy, iterable) {\n anInstance(dummy, NativePrototype);\n var that = inheritIfRequired(new NativeConstructor(), dummy, Constructor);\n if (!isNullOrUndefined(iterable)) iterate(iterable, that[ADDER], { that: that, AS_ENTRIES: IS_MAP });\n return that;\n });\n Constructor.prototype = NativePrototype;\n NativePrototype.constructor = Constructor;\n }\n\n if (THROWS_ON_PRIMITIVES || BUGGY_ZERO) {\n fixMethod('delete');\n fixMethod('has');\n IS_MAP && fixMethod('get');\n }\n\n if (BUGGY_ZERO || HASNT_CHAINING) fixMethod(ADDER);\n\n // weak collections should not contains .clear method\n if (IS_WEAK && NativePrototype.clear) delete NativePrototype.clear;\n }\n\n exported[CONSTRUCTOR_NAME] = Constructor;\n $({ global: true, constructor: true, forced: Constructor != NativeConstructor }, exported);\n\n setToStringTag(Constructor, CONSTRUCTOR_NAME);\n\n if (!IS_WEAK) common.setStrong(Constructor, CONSTRUCTOR_NAME, IS_MAP);\n\n return Constructor;\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\nmodule.exports = function (METHOD_NAME) {\n var regexp = /./;\n try {\n '/./'[METHOD_NAME](regexp);\n } catch (error1) {\n try {\n regexp[MATCH] = false;\n return '/./'[METHOD_NAME](regexp);\n } catch (error2) { /* empty */ }\n } return false;\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n function F() { /* empty */ }\n F.prototype.constructor = null;\n // eslint-disable-next-line es/no-object-getprototypeof -- required for testing\n return Object.getPrototypeOf(new F()) !== F.prototype;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\n\nvar quot = /\"/g;\nvar replace = uncurryThis(''.replace);\n\n// `CreateHTML` abstract operation\n// https://tc39.es/ecma262/#sec-createhtml\nmodule.exports = function (string, tag, attribute, value) {\n var S = toString(requireObjectCoercible(string));\n var p1 = '<' + tag;\n if (attribute !== '') p1 += ' ' + attribute + '=\"' + replace(toString(value), quot, '"') + '\"';\n return p1 + '>' + S + '';\n};\n","// `CreateIterResultObject` abstract operation\n// https://tc39.es/ecma262/#sec-createiterresultobject\nmodule.exports = function (value, done) {\n return { value: value, done: done };\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","'use strict';\nvar toPropertyKey = require('../internals/to-property-key');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = function (object, key, value) {\n var propertyKey = toPropertyKey(key);\n if (propertyKey in object) definePropertyModule.f(object, propertyKey, createPropertyDescriptor(0, value));\n else object[propertyKey] = value;\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function (target, src, options) {\n for (var key in src) defineBuiltIn(target, key, src[key], options);\n return target;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (O, P) {\n if (!delete O[P]) throw $TypeError('Cannot delete property ' + tryToString(P) + ' of ' + tryToString(O));\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","// iterable DOM collections\n// flag - `iterable` interface - 'entries', 'keys', 'values', 'forEach' methods\nmodule.exports = {\n CSSRuleList: 0,\n CSSStyleDeclaration: 0,\n CSSValueList: 0,\n ClientRectList: 0,\n DOMRectList: 0,\n DOMStringList: 0,\n DOMTokenList: 1,\n DataTransferItemList: 0,\n FileList: 0,\n HTMLAllCollection: 0,\n HTMLCollection: 0,\n HTMLFormElement: 0,\n HTMLSelectElement: 0,\n MediaList: 0,\n MimeTypeArray: 0,\n NamedNodeMap: 0,\n NodeList: 1,\n PaintRequestList: 0,\n Plugin: 0,\n PluginArray: 0,\n SVGLengthList: 0,\n SVGNumberList: 0,\n SVGPathSegList: 0,\n SVGPointList: 0,\n SVGStringList: 0,\n SVGTransformList: 0,\n SourceBufferList: 0,\n StyleSheetList: 0,\n TextTrackCueList: 0,\n TextTrackList: 0,\n TouchList: 0\n};\n","// in old WebKit versions, `element.classList` is not an instance of global `DOMTokenList`\nvar documentCreateElement = require('../internals/document-create-element');\n\nvar classList = documentCreateElement('span').classList;\nvar DOMTokenListPrototype = classList && classList.constructor && classList.constructor.prototype;\n\nmodule.exports = DOMTokenListPrototype === Object.prototype ? undefined : DOMTokenListPrototype;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar firefox = userAgent.match(/firefox\\/(\\d+)/i);\n\nmodule.exports = !!firefox && +firefox[1];\n","var IS_DENO = require('../internals/engine-is-deno');\nvar IS_NODE = require('../internals/engine-is-node');\n\nmodule.exports = !IS_DENO && !IS_NODE\n && typeof window == 'object'\n && typeof document == 'object';\n","/* global Deno -- Deno case */\nmodule.exports = typeof Deno == 'object' && Deno && typeof Deno.version == 'object';\n","var UA = require('../internals/engine-user-agent');\n\nmodule.exports = /MSIE|Trident/.test(UA);\n","var userAgent = require('../internals/engine-user-agent');\nvar global = require('../internals/global');\n\nmodule.exports = /ipad|iphone|ipod/i.test(userAgent) && global.Pebble !== undefined;\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /(?:ipad|iphone|ipod).*applewebkit/i.test(userAgent);\n","var classof = require('../internals/classof-raw');\nvar global = require('../internals/global');\n\nmodule.exports = classof(global.process) == 'process';\n","var userAgent = require('../internals/engine-user-agent');\n\nmodule.exports = /web0s(?!.*chrome)/i.test(userAgent);\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('navigator', 'userAgent') || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","var userAgent = require('../internals/engine-user-agent');\n\nvar webkit = userAgent.match(/AppleWebKit\\/(\\d+)\\./);\n\nmodule.exports = !!webkit && +webkit[1];\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar regexpExec = require('../internals/regexp-exec');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (KEY, exec, FORCED, SHAM) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n FORCED\n ) {\n var uncurriedNativeRegExpMethod = uncurryThis(/./[SYMBOL]);\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n var uncurriedNativeMethod = uncurryThis(nativeMethod);\n var $exec = regexp.exec;\n if ($exec === regexpExec || $exec === RegExpPrototype.exec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: uncurriedNativeRegExpMethod(regexp, str, arg2) };\n }\n return { done: true, value: uncurriedNativeMethod(str, regexp, arg2) };\n }\n return { done: false };\n });\n\n defineBuiltIn(String.prototype, KEY, methods[0]);\n defineBuiltIn(RegExpPrototype, SYMBOL, methods[1]);\n }\n\n if (SHAM) createNonEnumerableProperty(RegExpPrototype[SYMBOL], 'sham', true);\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-isextensible, es/no-object-preventextensions -- required for testing\n return Object.isExtensible(Object.preventExtensions({}));\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar apply = FunctionPrototype.apply;\nvar call = FunctionPrototype.call;\n\n// eslint-disable-next-line es/no-reflect -- safe\nmodule.exports = typeof Reflect == 'object' && Reflect.apply || (NATIVE_BIND ? call.bind(apply) : function () {\n return call.apply(apply, arguments);\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar bind = uncurryThis(uncurryThis.bind);\n\n// optional / simple context binding\nmodule.exports = function (fn, that) {\n aCallable(fn);\n return that === undefined ? fn : NATIVE_BIND ? bind(fn, that) : function (/* ...args */) {\n return fn.apply(that, arguments);\n };\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar aCallable = require('../internals/a-callable');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_BIND = require('../internals/function-bind-native');\n\nvar $Function = Function;\nvar concat = uncurryThis([].concat);\nvar join = uncurryThis([].join);\nvar factories = {};\n\nvar construct = function (C, argsLength, args) {\n if (!hasOwn(factories, argsLength)) {\n for (var list = [], i = 0; i < argsLength; i++) list[i] = 'a[' + i + ']';\n factories[argsLength] = $Function('C,a', 'return new C(' + join(list, ',') + ')');\n } return factories[argsLength](C, args);\n};\n\n// `Function.prototype.bind` method implementation\n// https://tc39.es/ecma262/#sec-function.prototype.bind\nmodule.exports = NATIVE_BIND ? $Function.bind : function bind(that /* , ...args */) {\n var F = aCallable(this);\n var Prototype = F.prototype;\n var partArgs = arraySlice(arguments, 1);\n var boundFunction = function bound(/* args... */) {\n var args = concat(partArgs, arraySlice(arguments));\n return this instanceof boundFunction ? construct(F, args.length, args) : F.apply(that, args);\n };\n if (isObject(Prototype)) boundFunction.prototype = Prototype;\n return boundFunction;\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var classofRaw = require('../internals/classof-raw');\nvar uncurryThisRaw = require('../internals/function-uncurry-this-raw');\n\nmodule.exports = function (fn) {\n // Nashorn bug:\n // https://github.com/zloirock/core-js/issues/1128\n // https://github.com/zloirock/core-js/issues/1130\n if (classofRaw(fn) === 'Function') return uncurryThisRaw(fn);\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var classof = require('../internals/classof');\nvar getMethod = require('../internals/get-method');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar Iterators = require('../internals/iterators');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\n\nmodule.exports = function (it) {\n if (!isNullOrUndefined(it)) return getMethod(it, ITERATOR)\n || getMethod(it, '@@iterator')\n || Iterators[classof(it)];\n};\n","var call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar getIteratorMethod = require('../internals/get-iterator-method');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (argument, usingIterator) {\n var iteratorMethod = arguments.length < 2 ? getIteratorMethod(argument) : usingIterator;\n if (aCallable(iteratorMethod)) return anObject(call(iteratorMethod, argument));\n throw $TypeError(tryToString(argument) + ' is not iterable');\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar floor = Math.floor;\nvar charAt = uncurryThis(''.charAt);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d{1,2}|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d{1,2})/g;\n\n// `GetSubstitution` abstract operation\n// https://tc39.es/ecma262/#sec-getsubstitution\nmodule.exports = function (matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return replace(replacement, symbols, function (match, ch) {\n var capture;\n switch (charAt(ch, 0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return stringSlice(str, 0, position);\n case \"'\": return stringSlice(str, tailPos);\n case '<':\n capture = namedCaptures[stringSlice(ch, 1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? charAt(ch, 1) : captures[f - 1] + charAt(ch, 1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var global = require('../internals/global');\n\nmodule.exports = function (a, b) {\n var console = global.console;\n if (console && console.error) {\n arguments.length == 1 ? console.error(a) : console.error(a, b);\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\n\nmodule.exports = getBuiltIn('document', 'documentElement');\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","// IEEE754 conversions based on https://github.com/feross/ieee754\nvar $Array = Array;\nvar abs = Math.abs;\nvar pow = Math.pow;\nvar floor = Math.floor;\nvar log = Math.log;\nvar LN2 = Math.LN2;\n\nvar pack = function (number, mantissaLength, bytes) {\n var buffer = $Array(bytes);\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var rt = mantissaLength === 23 ? pow(2, -24) - pow(2, -77) : 0;\n var sign = number < 0 || number === 0 && 1 / number < 0 ? 1 : 0;\n var index = 0;\n var exponent, mantissa, c;\n number = abs(number);\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number || number === Infinity) {\n // eslint-disable-next-line no-self-compare -- NaN check\n mantissa = number != number ? 1 : 0;\n exponent = eMax;\n } else {\n exponent = floor(log(number) / LN2);\n c = pow(2, -exponent);\n if (number * c < 1) {\n exponent--;\n c *= 2;\n }\n if (exponent + eBias >= 1) {\n number += rt / c;\n } else {\n number += rt * pow(2, 1 - eBias);\n }\n if (number * c >= 2) {\n exponent++;\n c /= 2;\n }\n if (exponent + eBias >= eMax) {\n mantissa = 0;\n exponent = eMax;\n } else if (exponent + eBias >= 1) {\n mantissa = (number * c - 1) * pow(2, mantissaLength);\n exponent = exponent + eBias;\n } else {\n mantissa = number * pow(2, eBias - 1) * pow(2, mantissaLength);\n exponent = 0;\n }\n }\n while (mantissaLength >= 8) {\n buffer[index++] = mantissa & 255;\n mantissa /= 256;\n mantissaLength -= 8;\n }\n exponent = exponent << mantissaLength | mantissa;\n exponentLength += mantissaLength;\n while (exponentLength > 0) {\n buffer[index++] = exponent & 255;\n exponent /= 256;\n exponentLength -= 8;\n }\n buffer[--index] |= sign * 128;\n return buffer;\n};\n\nvar unpack = function (buffer, mantissaLength) {\n var bytes = buffer.length;\n var exponentLength = bytes * 8 - mantissaLength - 1;\n var eMax = (1 << exponentLength) - 1;\n var eBias = eMax >> 1;\n var nBits = exponentLength - 7;\n var index = bytes - 1;\n var sign = buffer[index--];\n var exponent = sign & 127;\n var mantissa;\n sign >>= 7;\n while (nBits > 0) {\n exponent = exponent * 256 + buffer[index--];\n nBits -= 8;\n }\n mantissa = exponent & (1 << -nBits) - 1;\n exponent >>= -nBits;\n nBits += mantissaLength;\n while (nBits > 0) {\n mantissa = mantissa * 256 + buffer[index--];\n nBits -= 8;\n }\n if (exponent === 0) {\n exponent = 1 - eBias;\n } else if (exponent === eMax) {\n return mantissa ? NaN : sign ? -Infinity : Infinity;\n } else {\n mantissa = mantissa + pow(2, mantissaLength);\n exponent = exponent - eBias;\n } return (sign ? -1 : 1) * mantissa * pow(2, exponent - mantissaLength);\n};\n\nmodule.exports = {\n pack: pack,\n unpack: unpack\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\n\n// makes subclassing work correct for wrapped built-ins\nmodule.exports = function ($this, dummy, Wrapper) {\n var NewTarget, NewTargetPrototype;\n if (\n // it can work only with native `setPrototypeOf`\n setPrototypeOf &&\n // we haven't completely correct pre-ES6 way for getting `new.target`, so use this\n isCallable(NewTarget = dummy.constructor) &&\n NewTarget !== Wrapper &&\n isObject(NewTargetPrototype = NewTarget.prototype) &&\n NewTargetPrototype !== Wrapper.prototype\n ) setPrototypeOf($this, NewTargetPrototype);\n return $this;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar isObject = require('../internals/is-object');\nvar hasOwn = require('../internals/has-own-property');\nvar defineProperty = require('../internals/object-define-property').f;\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternalModule = require('../internals/object-get-own-property-names-external');\nvar isExtensible = require('../internals/object-is-extensible');\nvar uid = require('../internals/uid');\nvar FREEZING = require('../internals/freezing');\n\nvar REQUIRED = false;\nvar METADATA = uid('meta');\nvar id = 0;\n\nvar setMetadata = function (it) {\n defineProperty(it, METADATA, { value: {\n objectID: 'O' + id++, // object ID\n weakData: {} // weak collections IDs\n } });\n};\n\nvar fastKey = function (it, create) {\n // return a primitive with prefix\n if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return 'F';\n // not necessary to add metadata\n if (!create) return 'E';\n // add missing metadata\n setMetadata(it);\n // return object ID\n } return it[METADATA].objectID;\n};\n\nvar getWeakData = function (it, create) {\n if (!hasOwn(it, METADATA)) {\n // can't set metadata to uncaught frozen object\n if (!isExtensible(it)) return true;\n // not necessary to add metadata\n if (!create) return false;\n // add missing metadata\n setMetadata(it);\n // return the store of weak collections IDs\n } return it[METADATA].weakData;\n};\n\n// add metadata on freeze-family methods calling\nvar onFreeze = function (it) {\n if (FREEZING && REQUIRED && isExtensible(it) && !hasOwn(it, METADATA)) setMetadata(it);\n return it;\n};\n\nvar enable = function () {\n meta.enable = function () { /* empty */ };\n REQUIRED = true;\n var getOwnPropertyNames = getOwnPropertyNamesModule.f;\n var splice = uncurryThis([].splice);\n var test = {};\n test[METADATA] = 1;\n\n // prevent exposing of metadata key\n if (getOwnPropertyNames(test).length) {\n getOwnPropertyNamesModule.f = function (it) {\n var result = getOwnPropertyNames(it);\n for (var i = 0, length = result.length; i < length; i++) {\n if (result[i] === METADATA) {\n splice(result, i, 1);\n break;\n }\n } return result;\n };\n\n $({ target: 'Object', stat: true, forced: true }, {\n getOwnPropertyNames: getOwnPropertyNamesExternalModule.f\n });\n }\n};\n\nvar meta = module.exports = {\n enable: enable,\n fastKey: fastKey,\n getWeakData: getWeakData,\n onFreeze: onFreeze\n};\n\nhiddenKeys[METADATA] = true;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar ArrayPrototype = Array.prototype;\n\n// check on default Array iterator\nmodule.exports = function (it) {\n return it !== undefined && (Iterators.Array === it || ArrayPrototype[ITERATOR] === it);\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var classof = require('../internals/classof');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar slice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return slice(classof(it), 0, 3) === 'Big';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof');\nvar getBuiltIn = require('../internals/get-built-in');\nvar inspectSource = require('../internals/inspect-source');\n\nvar noop = function () { /* empty */ };\nvar empty = [];\nvar construct = getBuiltIn('Reflect', 'construct');\nvar constructorRegExp = /^\\s*(?:class|function)\\b/;\nvar exec = uncurryThis(constructorRegExp.exec);\nvar INCORRECT_TO_STRING = !constructorRegExp.exec(noop);\n\nvar isConstructorModern = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n try {\n construct(noop, empty, argument);\n return true;\n } catch (error) {\n return false;\n }\n};\n\nvar isConstructorLegacy = function isConstructor(argument) {\n if (!isCallable(argument)) return false;\n switch (classof(argument)) {\n case 'AsyncFunction':\n case 'GeneratorFunction':\n case 'AsyncGeneratorFunction': return false;\n }\n try {\n // we can't check .prototype since constructors produced by .bind haven't it\n // `Function#toString` throws on some built-it function in some legacy engines\n // (for example, `DOMQuad` and similar in FF41-)\n return INCORRECT_TO_STRING || !!exec(constructorRegExp, inspectSource(argument));\n } catch (error) {\n return true;\n }\n};\n\nisConstructorLegacy.sham = true;\n\n// `IsConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-isconstructor\nmodule.exports = !construct || fails(function () {\n var called;\n return isConstructorModern(isConstructorModern.call)\n || !isConstructorModern(Object)\n || !isConstructorModern(function () { called = true; })\n || called;\n}) ? isConstructorLegacy : isConstructorModern;\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","var isObject = require('../internals/is-object');\n\nvar floor = Math.floor;\n\n// `IsIntegralNumber` abstract operation\n// https://tc39.es/ecma262/#sec-isintegralnumber\n// eslint-disable-next-line es/no-number-isinteger -- safe\nmodule.exports = Number.isInteger || function isInteger(it) {\n return !isObject(it) && isFinite(it) && floor(it) === it;\n};\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar MATCH = wellKnownSymbol('match');\n\n// `IsRegExp` abstract operation\n// https://tc39.es/ecma262/#sec-isregexp\nmodule.exports = function (it) {\n var isRegExp;\n return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : classof(it) == 'RegExp');\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar tryToString = require('../internals/try-to-string');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar iteratorClose = require('../internals/iterator-close');\n\nvar $TypeError = TypeError;\n\nvar Result = function (stopped, result) {\n this.stopped = stopped;\n this.result = result;\n};\n\nvar ResultPrototype = Result.prototype;\n\nmodule.exports = function (iterable, unboundFunction, options) {\n var that = options && options.that;\n var AS_ENTRIES = !!(options && options.AS_ENTRIES);\n var IS_RECORD = !!(options && options.IS_RECORD);\n var IS_ITERATOR = !!(options && options.IS_ITERATOR);\n var INTERRUPTED = !!(options && options.INTERRUPTED);\n var fn = bind(unboundFunction, that);\n var iterator, iterFn, index, length, result, next, step;\n\n var stop = function (condition) {\n if (iterator) iteratorClose(iterator, 'normal', condition);\n return new Result(true, condition);\n };\n\n var callFn = function (value) {\n if (AS_ENTRIES) {\n anObject(value);\n return INTERRUPTED ? fn(value[0], value[1], stop) : fn(value[0], value[1]);\n } return INTERRUPTED ? fn(value, stop) : fn(value);\n };\n\n if (IS_RECORD) {\n iterator = iterable.iterator;\n } else if (IS_ITERATOR) {\n iterator = iterable;\n } else {\n iterFn = getIteratorMethod(iterable);\n if (!iterFn) throw $TypeError(tryToString(iterable) + ' is not iterable');\n // optimisation for array iterators\n if (isArrayIteratorMethod(iterFn)) {\n for (index = 0, length = lengthOfArrayLike(iterable); length > index; index++) {\n result = callFn(iterable[index]);\n if (result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n }\n iterator = getIterator(iterable, iterFn);\n }\n\n next = IS_RECORD ? iterable.next : iterator.next;\n while (!(step = call(next, iterator)).done) {\n try {\n result = callFn(step.value);\n } catch (error) {\n iteratorClose(iterator, 'throw', error);\n }\n if (typeof result == 'object' && result && isPrototypeOf(ResultPrototype, result)) return result;\n } return new Result(false);\n};\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar getMethod = require('../internals/get-method');\n\nmodule.exports = function (iterator, kind, value) {\n var innerResult, innerError;\n anObject(iterator);\n try {\n innerResult = getMethod(iterator, 'return');\n if (!innerResult) {\n if (kind === 'throw') throw value;\n return value;\n }\n innerResult = call(innerResult, iterator);\n } catch (error) {\n innerError = true;\n innerResult = error;\n }\n if (kind === 'throw') throw value;\n if (innerError) throw innerResult;\n anObject(innerResult);\n return value;\n};\n","'use strict';\nvar IteratorPrototype = require('../internals/iterators-core').IteratorPrototype;\nvar create = require('../internals/object-create');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar Iterators = require('../internals/iterators');\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (IteratorConstructor, NAME, next, ENUMERABLE_NEXT) {\n var TO_STRING_TAG = NAME + ' Iterator';\n IteratorConstructor.prototype = create(IteratorPrototype, { next: createPropertyDescriptor(+!ENUMERABLE_NEXT, next) });\n setToStringTag(IteratorConstructor, TO_STRING_TAG, false, true);\n Iterators[TO_STRING_TAG] = returnThis;\n return IteratorConstructor;\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar IS_PURE = require('../internals/is-pure');\nvar FunctionName = require('../internals/function-name');\nvar isCallable = require('../internals/is-callable');\nvar createIteratorConstructor = require('../internals/iterator-create-constructor');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar Iterators = require('../internals/iterators');\nvar IteratorsCore = require('../internals/iterators-core');\n\nvar PROPER_FUNCTION_NAME = FunctionName.PROPER;\nvar CONFIGURABLE_FUNCTION_NAME = FunctionName.CONFIGURABLE;\nvar IteratorPrototype = IteratorsCore.IteratorPrototype;\nvar BUGGY_SAFARI_ITERATORS = IteratorsCore.BUGGY_SAFARI_ITERATORS;\nvar ITERATOR = wellKnownSymbol('iterator');\nvar KEYS = 'keys';\nvar VALUES = 'values';\nvar ENTRIES = 'entries';\n\nvar returnThis = function () { return this; };\n\nmodule.exports = function (Iterable, NAME, IteratorConstructor, next, DEFAULT, IS_SET, FORCED) {\n createIteratorConstructor(IteratorConstructor, NAME, next);\n\n var getIterationMethod = function (KIND) {\n if (KIND === DEFAULT && defaultIterator) return defaultIterator;\n if (!BUGGY_SAFARI_ITERATORS && KIND in IterablePrototype) return IterablePrototype[KIND];\n switch (KIND) {\n case KEYS: return function keys() { return new IteratorConstructor(this, KIND); };\n case VALUES: return function values() { return new IteratorConstructor(this, KIND); };\n case ENTRIES: return function entries() { return new IteratorConstructor(this, KIND); };\n } return function () { return new IteratorConstructor(this); };\n };\n\n var TO_STRING_TAG = NAME + ' Iterator';\n var INCORRECT_VALUES_NAME = false;\n var IterablePrototype = Iterable.prototype;\n var nativeIterator = IterablePrototype[ITERATOR]\n || IterablePrototype['@@iterator']\n || DEFAULT && IterablePrototype[DEFAULT];\n var defaultIterator = !BUGGY_SAFARI_ITERATORS && nativeIterator || getIterationMethod(DEFAULT);\n var anyNativeIterator = NAME == 'Array' ? IterablePrototype.entries || nativeIterator : nativeIterator;\n var CurrentIteratorPrototype, methods, KEY;\n\n // fix native\n if (anyNativeIterator) {\n CurrentIteratorPrototype = getPrototypeOf(anyNativeIterator.call(new Iterable()));\n if (CurrentIteratorPrototype !== Object.prototype && CurrentIteratorPrototype.next) {\n if (!IS_PURE && getPrototypeOf(CurrentIteratorPrototype) !== IteratorPrototype) {\n if (setPrototypeOf) {\n setPrototypeOf(CurrentIteratorPrototype, IteratorPrototype);\n } else if (!isCallable(CurrentIteratorPrototype[ITERATOR])) {\n defineBuiltIn(CurrentIteratorPrototype, ITERATOR, returnThis);\n }\n }\n // Set @@toStringTag to native iterators\n setToStringTag(CurrentIteratorPrototype, TO_STRING_TAG, true, true);\n if (IS_PURE) Iterators[TO_STRING_TAG] = returnThis;\n }\n }\n\n // fix Array.prototype.{ values, @@iterator }.name in V8 / FF\n if (PROPER_FUNCTION_NAME && DEFAULT == VALUES && nativeIterator && nativeIterator.name !== VALUES) {\n if (!IS_PURE && CONFIGURABLE_FUNCTION_NAME) {\n createNonEnumerableProperty(IterablePrototype, 'name', VALUES);\n } else {\n INCORRECT_VALUES_NAME = true;\n defaultIterator = function values() { return call(nativeIterator, this); };\n }\n }\n\n // export additional methods\n if (DEFAULT) {\n methods = {\n values: getIterationMethod(VALUES),\n keys: IS_SET ? defaultIterator : getIterationMethod(KEYS),\n entries: getIterationMethod(ENTRIES)\n };\n if (FORCED) for (KEY in methods) {\n if (BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME || !(KEY in IterablePrototype)) {\n defineBuiltIn(IterablePrototype, KEY, methods[KEY]);\n }\n } else $({ target: NAME, proto: true, forced: BUGGY_SAFARI_ITERATORS || INCORRECT_VALUES_NAME }, methods);\n }\n\n // define iterator\n if ((!IS_PURE || FORCED) && IterablePrototype[ITERATOR] !== defaultIterator) {\n defineBuiltIn(IterablePrototype, ITERATOR, defaultIterator, { name: DEFAULT });\n }\n Iterators[NAME] = defaultIterator;\n\n return methods;\n};\n","'use strict';\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar getPrototypeOf = require('../internals/object-get-prototype-of');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_PURE = require('../internals/is-pure');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar BUGGY_SAFARI_ITERATORS = false;\n\n// `%IteratorPrototype%` object\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-object\nvar IteratorPrototype, PrototypeOfArrayIteratorPrototype, arrayIterator;\n\n/* eslint-disable es/no-array-prototype-keys -- safe */\nif ([].keys) {\n arrayIterator = [].keys();\n // Safari 8 has buggy iterators w/o `next`\n if (!('next' in arrayIterator)) BUGGY_SAFARI_ITERATORS = true;\n else {\n PrototypeOfArrayIteratorPrototype = getPrototypeOf(getPrototypeOf(arrayIterator));\n if (PrototypeOfArrayIteratorPrototype !== Object.prototype) IteratorPrototype = PrototypeOfArrayIteratorPrototype;\n }\n}\n\nvar NEW_ITERATOR_PROTOTYPE = !isObject(IteratorPrototype) || fails(function () {\n var test = {};\n // FF44- legacy iterators case\n return IteratorPrototype[ITERATOR].call(test) !== test;\n});\n\nif (NEW_ITERATOR_PROTOTYPE) IteratorPrototype = {};\nelse if (IS_PURE) IteratorPrototype = create(IteratorPrototype);\n\n// `%IteratorPrototype%[@@iterator]()` method\n// https://tc39.es/ecma262/#sec-%iteratorprototype%-@@iterator\nif (!isCallable(IteratorPrototype[ITERATOR])) {\n defineBuiltIn(IteratorPrototype, ITERATOR, function () {\n return this;\n });\n}\n\nmodule.exports = {\n IteratorPrototype: IteratorPrototype,\n BUGGY_SAFARI_ITERATORS: BUGGY_SAFARI_ITERATORS\n};\n","module.exports = {};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (String(name).slice(0, 7) === 'Symbol(') {\n name = '[' + String(name).replace(/^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = TEMPLATE.join(typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var global = require('../internals/global');\nvar bind = require('../internals/function-bind-context');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar macrotask = require('../internals/task').set;\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_IOS_PEBBLE = require('../internals/engine-is-ios-pebble');\nvar IS_WEBOS_WEBKIT = require('../internals/engine-is-webos-webkit');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar MutationObserver = global.MutationObserver || global.WebKitMutationObserver;\nvar document = global.document;\nvar process = global.process;\nvar Promise = global.Promise;\n// Node.js 11 shows ExperimentalWarning on getting `queueMicrotask`\nvar queueMicrotaskDescriptor = getOwnPropertyDescriptor(global, 'queueMicrotask');\nvar queueMicrotask = queueMicrotaskDescriptor && queueMicrotaskDescriptor.value;\n\nvar flush, head, last, notify, toggle, node, promise, then;\n\n// modern engines have queueMicrotask method\nif (!queueMicrotask) {\n flush = function () {\n var parent, fn;\n if (IS_NODE && (parent = process.domain)) parent.exit();\n while (head) {\n fn = head.fn;\n head = head.next;\n try {\n fn();\n } catch (error) {\n if (head) notify();\n else last = undefined;\n throw error;\n }\n } last = undefined;\n if (parent) parent.enter();\n };\n\n // browsers with MutationObserver, except iOS - https://github.com/zloirock/core-js/issues/339\n // also except WebOS Webkit https://github.com/zloirock/core-js/issues/898\n if (!IS_IOS && !IS_NODE && !IS_WEBOS_WEBKIT && MutationObserver && document) {\n toggle = true;\n node = document.createTextNode('');\n new MutationObserver(flush).observe(node, { characterData: true });\n notify = function () {\n node.data = toggle = !toggle;\n };\n // environments with maybe non-completely correct, but existent Promise\n } else if (!IS_IOS_PEBBLE && Promise && Promise.resolve) {\n // Promise.resolve without an argument throws an error in LG WebOS 2\n promise = Promise.resolve(undefined);\n // workaround of WebKit ~ iOS Safari 10.1 bug\n promise.constructor = Promise;\n then = bind(promise.then, promise);\n notify = function () {\n then(flush);\n };\n // Node.js without promises\n } else if (IS_NODE) {\n notify = function () {\n process.nextTick(flush);\n };\n // for other environments - macrotask based on:\n // - setImmediate\n // - MessageChannel\n // - window.postMessage\n // - onreadystatechange\n // - setTimeout\n } else {\n // strange IE + webpack dev server bug - use .bind(global)\n macrotask = bind(macrotask, global);\n notify = function () {\n macrotask(flush);\n };\n }\n}\n\nmodule.exports = queueMicrotask || function (fn) {\n var task = { fn: fn, next: undefined };\n if (last) last.next = task;\n if (!head) {\n head = task;\n notify();\n } last = task;\n};\n","'use strict';\nvar aCallable = require('../internals/a-callable');\n\nvar $TypeError = TypeError;\n\nvar PromiseCapability = function (C) {\n var resolve, reject;\n this.promise = new C(function ($$resolve, $$reject) {\n if (resolve !== undefined || reject !== undefined) throw $TypeError('Bad Promise constructor');\n resolve = $$resolve;\n reject = $$reject;\n });\n this.resolve = aCallable(resolve);\n this.reject = aCallable(reject);\n};\n\n// `NewPromiseCapability` abstract operation\n// https://tc39.es/ecma262/#sec-newpromisecapability\nmodule.exports.f = function (C) {\n return new PromiseCapability(C);\n};\n","var isRegExp = require('../internals/is-regexp');\n\nvar $TypeError = TypeError;\n\nmodule.exports = function (it) {\n if (isRegExp(it)) {\n throw $TypeError(\"The method doesn't accept regular expressions\");\n } return it;\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar call = require('../internals/function-call');\nvar fails = require('../internals/fails');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar toObject = require('../internals/to-object');\nvar IndexedObject = require('../internals/indexed-object');\n\n// eslint-disable-next-line es/no-object-assign -- safe\nvar $assign = Object.assign;\n// eslint-disable-next-line es/no-object-defineproperty -- required for testing\nvar defineProperty = Object.defineProperty;\nvar concat = uncurryThis([].concat);\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\nmodule.exports = !$assign || fails(function () {\n // should have correct order of operations (Edge bug)\n if (DESCRIPTORS && $assign({ b: 1 }, $assign(defineProperty({}, 'a', {\n enumerable: true,\n get: function () {\n defineProperty(this, 'b', {\n value: 3,\n enumerable: false\n });\n }\n }), { b: 2 })).b !== 1) return true;\n // should work with symbols and should have deterministic property order (V8 bug)\n var A = {};\n var B = {};\n // eslint-disable-next-line es/no-symbol -- safe\n var symbol = Symbol();\n var alphabet = 'abcdefghijklmnopqrst';\n A[symbol] = 7;\n alphabet.split('').forEach(function (chr) { B[chr] = chr; });\n return $assign({}, A)[symbol] != 7 || objectKeys($assign({}, B)).join('') != alphabet;\n}) ? function assign(target, source) { // eslint-disable-line no-unused-vars -- required for `.length`\n var T = toObject(target);\n var argumentsLength = arguments.length;\n var index = 1;\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n var propertyIsEnumerable = propertyIsEnumerableModule.f;\n while (argumentsLength > index) {\n var S = IndexedObject(arguments[index++]);\n var keys = getOwnPropertySymbols ? concat(objectKeys(S), getOwnPropertySymbols(S)) : objectKeys(S);\n var length = keys.length;\n var j = 0;\n var key;\n while (length > j) {\n key = keys[j++];\n if (!DESCRIPTORS || call(propertyIsEnumerable, S, key)) T[key] = S[key];\n }\n } return T;\n} : $assign;\n","/* global ActiveXObject -- old IE, WSH */\nvar anObject = require('../internals/an-object');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar enumBugKeys = require('../internals/enum-bug-keys');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar html = require('../internals/html');\nvar documentCreateElement = require('../internals/document-create-element');\nvar sharedKey = require('../internals/shared-key');\n\nvar GT = '>';\nvar LT = '<';\nvar PROTOTYPE = 'prototype';\nvar SCRIPT = 'script';\nvar IE_PROTO = sharedKey('IE_PROTO');\n\nvar EmptyConstructor = function () { /* empty */ };\n\nvar scriptTag = function (content) {\n return LT + SCRIPT + GT + content + LT + '/' + SCRIPT + GT;\n};\n\n// Create object with fake `null` prototype: use ActiveX Object with cleared prototype\nvar NullProtoObjectViaActiveX = function (activeXDocument) {\n activeXDocument.write(scriptTag(''));\n activeXDocument.close();\n var temp = activeXDocument.parentWindow.Object;\n activeXDocument = null; // avoid memory leak\n return temp;\n};\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar NullProtoObjectViaIFrame = function () {\n // Thrash, waste and sodomy: IE GC bug\n var iframe = documentCreateElement('iframe');\n var JS = 'java' + SCRIPT + ':';\n var iframeDocument;\n iframe.style.display = 'none';\n html.appendChild(iframe);\n // https://github.com/zloirock/core-js/issues/475\n iframe.src = String(JS);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(scriptTag('document.F=Object'));\n iframeDocument.close();\n return iframeDocument.F;\n};\n\n// Check for document.domain and active x support\n// No need to use active x approach when document.domain is not set\n// see https://github.com/es-shims/es5-shim/issues/150\n// variation of https://github.com/kitcambridge/es5-shim/commit/4f738ac066346\n// avoid IE GC bug\nvar activeXDocument;\nvar NullProtoObject = function () {\n try {\n activeXDocument = new ActiveXObject('htmlfile');\n } catch (error) { /* ignore */ }\n NullProtoObject = typeof document != 'undefined'\n ? document.domain && activeXDocument\n ? NullProtoObjectViaActiveX(activeXDocument) // old IE\n : NullProtoObjectViaIFrame()\n : NullProtoObjectViaActiveX(activeXDocument); // WSH\n var length = enumBugKeys.length;\n while (length--) delete NullProtoObject[PROTOTYPE][enumBugKeys[length]];\n return NullProtoObject();\n};\n\nhiddenKeys[IE_PROTO] = true;\n\n// `Object.create` method\n// https://tc39.es/ecma262/#sec-object.create\n// eslint-disable-next-line es/no-object-create -- safe\nmodule.exports = Object.create || function create(O, Properties) {\n var result;\n if (O !== null) {\n EmptyConstructor[PROTOTYPE] = anObject(O);\n result = new EmptyConstructor();\n EmptyConstructor[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = NullProtoObject();\n return Properties === undefined ? result : definePropertiesModule.f(result, Properties);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar definePropertyModule = require('../internals/object-define-property');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar objectKeys = require('../internals/object-keys');\n\n// `Object.defineProperties` method\n// https://tc39.es/ecma262/#sec-object.defineproperties\n// eslint-disable-next-line es/no-object-defineproperties -- safe\nexports.f = DESCRIPTORS && !V8_PROTOTYPE_DEFINE_BUG ? Object.defineProperties : function defineProperties(O, Properties) {\n anObject(O);\n var props = toIndexedObject(Properties);\n var keys = objectKeys(Properties);\n var length = keys.length;\n var index = 0;\n var key;\n while (length > index) definePropertyModule.f(O, key = keys[index++], props[key]);\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","/* eslint-disable es/no-object-getownpropertynames -- safe */\nvar classof = require('../internals/classof-raw');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar arraySlice = require('../internals/array-slice-simple');\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function (it) {\n try {\n return $getOwnPropertyNames(it);\n } catch (error) {\n return arraySlice(windowNames);\n }\n};\n\n// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nmodule.exports.f = function getOwnPropertyNames(it) {\n return windowNames && classof(it) == 'Window'\n ? getWindowNames(it)\n : $getOwnPropertyNames(toIndexedObject(it));\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar toObject = require('../internals/to-object');\nvar sharedKey = require('../internals/shared-key');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar IE_PROTO = sharedKey('IE_PROTO');\nvar $Object = Object;\nvar ObjectPrototype = $Object.prototype;\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n// eslint-disable-next-line es/no-object-getprototypeof -- safe\nmodule.exports = CORRECT_PROTOTYPE_GETTER ? $Object.getPrototypeOf : function (O) {\n var object = toObject(O);\n if (hasOwn(object, IE_PROTO)) return object[IE_PROTO];\n var constructor = object.constructor;\n if (isCallable(constructor) && object instanceof constructor) {\n return constructor.prototype;\n } return object instanceof $Object ? ObjectPrototype : null;\n};\n","var fails = require('../internals/fails');\nvar isObject = require('../internals/is-object');\nvar classof = require('../internals/classof-raw');\nvar ARRAY_BUFFER_NON_EXTENSIBLE = require('../internals/array-buffer-non-extensible');\n\n// eslint-disable-next-line es/no-object-isextensible -- safe\nvar $isExtensible = Object.isExtensible;\nvar FAILS_ON_PRIMITIVES = fails(function () { $isExtensible(1); });\n\n// `Object.isExtensible` method\n// https://tc39.es/ecma262/#sec-object.isextensible\nmodule.exports = (FAILS_ON_PRIMITIVES || ARRAY_BUFFER_NON_EXTENSIBLE) ? function isExtensible(it) {\n if (!isObject(it)) return false;\n if (ARRAY_BUFFER_NON_EXTENSIBLE && classof(it) == 'ArrayBuffer') return false;\n return $isExtensible ? $isExtensible(it) : true;\n} : $isExtensible;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n// eslint-disable-next-line es/no-object-keys -- safe\nmodule.exports = Object.keys || function keys(O) {\n return internalObjectKeys(O, enumBugKeys);\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","/* eslint-disable no-proto -- safe */\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar anObject = require('../internals/an-object');\nvar aPossiblePrototype = require('../internals/a-possible-prototype');\n\n// `Object.setPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.setprototypeof\n// Works with __proto__ only. Old v8 can't work with null proto objects.\n// eslint-disable-next-line es/no-object-setprototypeof -- safe\nmodule.exports = Object.setPrototypeOf || ('__proto__' in {} ? function () {\n var CORRECT_SETTER = false;\n var test = {};\n var setter;\n try {\n // eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\n setter = uncurryThis(Object.getOwnPropertyDescriptor(Object.prototype, '__proto__').set);\n setter(test, []);\n CORRECT_SETTER = test instanceof Array;\n } catch (error) { /* empty */ }\n return function setPrototypeOf(O, proto) {\n anObject(O);\n aPossiblePrototype(proto);\n if (CORRECT_SETTER) setter(O, proto);\n else O.__proto__ = proto;\n return O;\n };\n}() : undefined);\n","var DESCRIPTORS = require('../internals/descriptors');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar objectKeys = require('../internals/object-keys');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar $propertyIsEnumerable = require('../internals/object-property-is-enumerable').f;\n\nvar propertyIsEnumerable = uncurryThis($propertyIsEnumerable);\nvar push = uncurryThis([].push);\n\n// `Object.{ entries, values }` methods implementation\nvar createMethod = function (TO_ENTRIES) {\n return function (it) {\n var O = toIndexedObject(it);\n var keys = objectKeys(O);\n var length = keys.length;\n var i = 0;\n var result = [];\n var key;\n while (length > i) {\n key = keys[i++];\n if (!DESCRIPTORS || propertyIsEnumerable(O, key)) {\n push(result, TO_ENTRIES ? [key, O[key]] : O[key]);\n }\n }\n return result;\n };\n};\n\nmodule.exports = {\n // `Object.entries` method\n // https://tc39.es/ecma262/#sec-object.entries\n entries: createMethod(true),\n // `Object.values` method\n // https://tc39.es/ecma262/#sec-object.values\n values: createMethod(false)\n};\n","'use strict';\nvar TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar classof = require('../internals/classof');\n\n// `Object.prototype.toString` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nmodule.exports = TO_STRING_TAG_SUPPORT ? {}.toString : function toString() {\n return '[object ' + classof(this) + ']';\n};\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","module.exports = function (exec) {\n try {\n return { error: false, value: exec() };\n } catch (error) {\n return { error: true, value: error };\n }\n};\n","var global = require('../internals/global');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar isCallable = require('../internals/is-callable');\nvar isForced = require('../internals/is-forced');\nvar inspectSource = require('../internals/inspect-source');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar IS_BROWSER = require('../internals/engine-is-browser');\nvar IS_DENO = require('../internals/engine-is-deno');\nvar IS_PURE = require('../internals/is-pure');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar SPECIES = wellKnownSymbol('species');\nvar SUBCLASSING = false;\nvar NATIVE_PROMISE_REJECTION_EVENT = isCallable(global.PromiseRejectionEvent);\n\nvar FORCED_PROMISE_CONSTRUCTOR = isForced('Promise', function () {\n var PROMISE_CONSTRUCTOR_SOURCE = inspectSource(NativePromiseConstructor);\n var GLOBAL_CORE_JS_PROMISE = PROMISE_CONSTRUCTOR_SOURCE !== String(NativePromiseConstructor);\n // V8 6.6 (Node 10 and Chrome 66) have a bug with resolving custom thenables\n // https://bugs.chromium.org/p/chromium/issues/detail?id=830565\n // We can't detect it synchronously, so just check versions\n if (!GLOBAL_CORE_JS_PROMISE && V8_VERSION === 66) return true;\n // We need Promise#{ catch, finally } in the pure version for preventing prototype pollution\n if (IS_PURE && !(NativePromisePrototype['catch'] && NativePromisePrototype['finally'])) return true;\n // We can't use @@species feature detection in V8 since it causes\n // deoptimization and performance degradation\n // https://github.com/zloirock/core-js/issues/679\n if (!V8_VERSION || V8_VERSION < 51 || !/native code/.test(PROMISE_CONSTRUCTOR_SOURCE)) {\n // Detect correctness of subclassing with @@species support\n var promise = new NativePromiseConstructor(function (resolve) { resolve(1); });\n var FakePromise = function (exec) {\n exec(function () { /* empty */ }, function () { /* empty */ });\n };\n var constructor = promise.constructor = {};\n constructor[SPECIES] = FakePromise;\n SUBCLASSING = promise.then(function () { /* empty */ }) instanceof FakePromise;\n if (!SUBCLASSING) return true;\n // Unhandled rejections tracking support, NodeJS Promise without it fails @@species test\n } return !GLOBAL_CORE_JS_PROMISE && (IS_BROWSER || IS_DENO) && !NATIVE_PROMISE_REJECTION_EVENT;\n});\n\nmodule.exports = {\n CONSTRUCTOR: FORCED_PROMISE_CONSTRUCTOR,\n REJECTION_EVENT: NATIVE_PROMISE_REJECTION_EVENT,\n SUBCLASSING: SUBCLASSING\n};\n","var global = require('../internals/global');\n\nmodule.exports = global.Promise;\n","var anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar newPromiseCapability = require('../internals/new-promise-capability');\n\nmodule.exports = function (C, x) {\n anObject(C);\n if (isObject(x) && x.constructor === C) return x;\n var promiseCapability = newPromiseCapability.f(C);\n var resolve = promiseCapability.resolve;\n resolve(x);\n return promiseCapability.promise;\n};\n","var NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\nmodule.exports = FORCED_PROMISE_CONSTRUCTOR || !checkCorrectnessOfIteration(function (iterable) {\n NativePromiseConstructor.all(iterable).then(undefined, function () { /* empty */ });\n});\n","var Queue = function () {\n this.head = null;\n this.tail = null;\n};\n\nQueue.prototype = {\n add: function (item) {\n var entry = { item: item, next: null };\n if (this.head) this.tail.next = entry;\n else this.head = entry;\n this.tail = entry;\n },\n get: function () {\n var entry = this.head;\n if (entry) {\n this.head = entry.next;\n if (this.tail === entry) this.tail = null;\n return entry.item;\n }\n }\n};\n\nmodule.exports = Queue;\n","var call = require('../internals/function-call');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar classof = require('../internals/classof-raw');\nvar regexpExec = require('../internals/regexp-exec');\n\nvar $TypeError = TypeError;\n\n// `RegExpExec` abstract operation\n// https://tc39.es/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (isCallable(exec)) {\n var result = call(exec, R, S);\n if (result !== null) anObject(result);\n return result;\n }\n if (classof(R) === 'RegExp') return call(regexpExec, R, S);\n throw $TypeError('RegExp#exec called on incompatible receiver');\n};\n","'use strict';\n/* eslint-disable regexp/no-empty-capturing-group, regexp/no-empty-group, regexp/no-lazy-ends -- testing */\n/* eslint-disable regexp/no-useless-quantifier -- testing */\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toString = require('../internals/to-string');\nvar regexpFlags = require('../internals/regexp-flags');\nvar stickyHelpers = require('../internals/regexp-sticky-helpers');\nvar shared = require('../internals/shared');\nvar create = require('../internals/object-create');\nvar getInternalState = require('../internals/internal-state').get;\nvar UNSUPPORTED_DOT_ALL = require('../internals/regexp-unsupported-dot-all');\nvar UNSUPPORTED_NCG = require('../internals/regexp-unsupported-ncg');\n\nvar nativeReplace = shared('native-string-replace', String.prototype.replace);\nvar nativeExec = RegExp.prototype.exec;\nvar patchedExec = nativeExec;\nvar charAt = uncurryThis(''.charAt);\nvar indexOf = uncurryThis(''.indexOf);\nvar replace = uncurryThis(''.replace);\nvar stringSlice = uncurryThis(''.slice);\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n call(nativeExec, re1, 'a');\n call(nativeExec, re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y || UNSUPPORTED_DOT_ALL || UNSUPPORTED_NCG;\n\nif (PATCH) {\n patchedExec = function exec(string) {\n var re = this;\n var state = getInternalState(re);\n var str = toString(string);\n var raw = state.raw;\n var result, reCopy, lastIndex, match, i, object, group;\n\n if (raw) {\n raw.lastIndex = re.lastIndex;\n result = call(patchedExec, raw, str);\n re.lastIndex = raw.lastIndex;\n return result;\n }\n\n var groups = state.groups;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = call(regexpFlags, re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = replace(flags, 'y', '');\n if (indexOf(flags, 'g') === -1) {\n flags += 'g';\n }\n\n strCopy = stringSlice(str, re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && charAt(str, re.lastIndex - 1) !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = call(nativeExec, sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = stringSlice(match.input, charsAdded);\n match[0] = stringSlice(match[0], charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn't work for /(.?)?/\n call(nativeReplace, match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n if (match && groups) {\n match.groups = object = create(null);\n for (i = 0; i < groups.length; i++) {\n group = groups[i];\n object[group[0]] = match[group[1]];\n }\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.es/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.hasIndices) result += 'd';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.unicodeSets) result += 'v';\n if (that.sticky) result += 'y';\n return result;\n};\n","var call = require('../internals/function-call');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar regExpFlags = require('../internals/regexp-flags');\n\nvar RegExpPrototype = RegExp.prototype;\n\nmodule.exports = function (R) {\n var flags = R.flags;\n return flags === undefined && !('flags' in RegExpPrototype) && !hasOwn(R, 'flags') && isPrototypeOf(RegExpPrototype, R)\n ? call(regExpFlags, R) : flags;\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nvar UNSUPPORTED_Y = fails(function () {\n var re = $RegExp('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\n// UC Browser bug\n// https://github.com/zloirock/core-js/issues/1008\nvar MISSED_STICKY = UNSUPPORTED_Y || fails(function () {\n return !$RegExp('a', 'y').sticky;\n});\n\nvar BROKEN_CARET = UNSUPPORTED_Y || fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = $RegExp('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n\nmodule.exports = {\n BROKEN_CARET: BROKEN_CARET,\n MISSED_STICKY: MISSED_STICKY,\n UNSUPPORTED_Y: UNSUPPORTED_Y\n};\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('.', 's') -> /./s and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('.', 's');\n return !(re.dotAll && re.exec('\\n') && re.flags === 's');\n});\n","var fails = require('../internals/fails');\nvar global = require('../internals/global');\n\n// babel-minify and Closure Compiler transpiles RegExp('(?b)', 'g') -> /(?b)/g and it causes SyntaxError\nvar $RegExp = global.RegExp;\n\nmodule.exports = fails(function () {\n var re = $RegExp('(?b)', 'g');\n return re.exec('b').groups.a !== 'b' ||\n 'b'.replace(re, '$c') !== 'bc';\n});\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","'use strict';\nvar getBuiltIn = require('../internals/get-built-in');\nvar definePropertyModule = require('../internals/object-define-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar SPECIES = wellKnownSymbol('species');\n\nmodule.exports = function (CONSTRUCTOR_NAME) {\n var Constructor = getBuiltIn(CONSTRUCTOR_NAME);\n var defineProperty = definePropertyModule.f;\n\n if (DESCRIPTORS && Constructor && !Constructor[SPECIES]) {\n defineProperty(Constructor, SPECIES, {\n configurable: true,\n get: function () { return this; }\n });\n }\n};\n","var defineProperty = require('../internals/object-define-property').f;\nvar hasOwn = require('../internals/has-own-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\n\nmodule.exports = function (target, TAG, STATIC) {\n if (target && !STATIC) target = target.prototype;\n if (target && !hasOwn(target, TO_STRING_TAG)) {\n defineProperty(target, TO_STRING_TAG, { configurable: true, value: TAG });\n }\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.26.0',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2022 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.26.0/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","var anObject = require('../internals/an-object');\nvar aConstructor = require('../internals/a-constructor');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar SPECIES = wellKnownSymbol('species');\n\n// `SpeciesConstructor` abstract operation\n// https://tc39.es/ecma262/#sec-speciesconstructor\nmodule.exports = function (O, defaultConstructor) {\n var C = anObject(O).constructor;\n var S;\n return C === undefined || isNullOrUndefined(S = anObject(C)[SPECIES]) ? defaultConstructor : aConstructor(S);\n};\n","var fails = require('../internals/fails');\n\n// check the existence of a method, lowercase\n// of a tag and escaping quotes in arguments\nmodule.exports = function (METHOD_NAME) {\n return fails(function () {\n var test = ''[METHOD_NAME]('\"');\n return test !== test.toLowerCase() || test.split('\"').length > 3;\n });\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar stringSlice = uncurryThis(''.slice);\n\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = toString(requireObjectCoercible($this));\n var position = toIntegerOrInfinity(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = charCodeAt(S, position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = charCodeAt(S, position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING\n ? charAt(S, position)\n : first\n : CONVERT_TO_STRING\n ? stringSlice(S, position, position + 2)\n : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.es/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","'use strict';\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $RangeError = RangeError;\n\n// `String.prototype.repeat` method implementation\n// https://tc39.es/ecma262/#sec-string.prototype.repeat\nmodule.exports = function repeat(count) {\n var str = toString(requireObjectCoercible(this));\n var result = '';\n var n = toIntegerOrInfinity(count);\n if (n < 0 || n == Infinity) throw $RangeError('Wrong number of repetitions');\n for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) result += str;\n return result;\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n return !String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var call = require('../internals/function-call');\nvar getBuiltIn = require('../internals/get-built-in');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nmodule.exports = function () {\n var Symbol = getBuiltIn('Symbol');\n var SymbolPrototype = Symbol && Symbol.prototype;\n var valueOf = SymbolPrototype && SymbolPrototype.valueOf;\n var TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n if (SymbolPrototype && !SymbolPrototype[TO_PRIMITIVE]) {\n // `Symbol.prototype[@@toPrimitive]` method\n // https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\n // eslint-disable-next-line no-unused-vars -- required for .length\n defineBuiltIn(SymbolPrototype, TO_PRIMITIVE, function (hint) {\n return call(valueOf, this);\n }, { arity: 1 });\n }\n};\n","var NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\n/* eslint-disable es/no-symbol -- safe */\nmodule.exports = NATIVE_SYMBOL && !!Symbol['for'] && !!Symbol.keyFor;\n","var global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind-context');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar fails = require('../internals/fails');\nvar html = require('../internals/html');\nvar arraySlice = require('../internals/array-slice');\nvar createElement = require('../internals/document-create-element');\nvar validateArgumentsLength = require('../internals/validate-arguments-length');\nvar IS_IOS = require('../internals/engine-is-ios');\nvar IS_NODE = require('../internals/engine-is-node');\n\nvar set = global.setImmediate;\nvar clear = global.clearImmediate;\nvar process = global.process;\nvar Dispatch = global.Dispatch;\nvar Function = global.Function;\nvar MessageChannel = global.MessageChannel;\nvar String = global.String;\nvar counter = 0;\nvar queue = {};\nvar ONREADYSTATECHANGE = 'onreadystatechange';\nvar $location, defer, channel, port;\n\ntry {\n // Deno throws a ReferenceError on `location` access without `--location` flag\n $location = global.location;\n} catch (error) { /* empty */ }\n\nvar run = function (id) {\n if (hasOwn(queue, id)) {\n var fn = queue[id];\n delete queue[id];\n fn();\n }\n};\n\nvar runner = function (id) {\n return function () {\n run(id);\n };\n};\n\nvar listener = function (event) {\n run(event.data);\n};\n\nvar post = function (id) {\n // old engines have not location.origin\n global.postMessage(String(id), $location.protocol + '//' + $location.host);\n};\n\n// Node.js 0.9+ & IE10+ has setImmediate, otherwise:\nif (!set || !clear) {\n set = function setImmediate(handler) {\n validateArgumentsLength(arguments.length, 1);\n var fn = isCallable(handler) ? handler : Function(handler);\n var args = arraySlice(arguments, 1);\n queue[++counter] = function () {\n apply(fn, undefined, args);\n };\n defer(counter);\n return counter;\n };\n clear = function clearImmediate(id) {\n delete queue[id];\n };\n // Node.js 0.8-\n if (IS_NODE) {\n defer = function (id) {\n process.nextTick(runner(id));\n };\n // Sphere (JS game engine) Dispatch API\n } else if (Dispatch && Dispatch.now) {\n defer = function (id) {\n Dispatch.now(runner(id));\n };\n // Browsers with MessageChannel, includes WebWorkers\n // except iOS - https://github.com/zloirock/core-js/issues/624\n } else if (MessageChannel && !IS_IOS) {\n channel = new MessageChannel();\n port = channel.port2;\n channel.port1.onmessage = listener;\n defer = bind(port.postMessage, port);\n // Browsers with postMessage, skip WebWorkers\n // IE8 has postMessage, but it's sync & typeof its postMessage is 'object'\n } else if (\n global.addEventListener &&\n isCallable(global.postMessage) &&\n !global.importScripts &&\n $location && $location.protocol !== 'file:' &&\n !fails(post)\n ) {\n defer = post;\n global.addEventListener('message', listener, false);\n // IE8-\n } else if (ONREADYSTATECHANGE in createElement('script')) {\n defer = function (id) {\n html.appendChild(createElement('script'))[ONREADYSTATECHANGE] = function () {\n html.removeChild(this);\n run(id);\n };\n };\n // Rest old browsers\n } else {\n defer = function (id) {\n setTimeout(runner(id), 0);\n };\n }\n}\n\nmodule.exports = {\n set: set,\n clear: clear\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\n// `thisNumberValue` abstract operation\n// https://tc39.es/ecma262/#sec-thisnumbervalue\nmodule.exports = uncurryThis(1.0.valueOf);\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","var toPrimitive = require('../internals/to-primitive');\n\nvar $TypeError = TypeError;\n\n// `ToBigInt` abstract operation\n// https://tc39.es/ecma262/#sec-tobigint\nmodule.exports = function (argument) {\n var prim = toPrimitive(argument, 'number');\n if (typeof prim == 'number') throw $TypeError(\"Can't convert number to bigint\");\n // eslint-disable-next-line es/no-bigint -- safe\n return BigInt(prim);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\n\nvar $RangeError = RangeError;\n\n// `ToIndex` abstract operation\n// https://tc39.es/ecma262/#sec-toindex\nmodule.exports = function (it) {\n if (it === undefined) return 0;\n var number = toIntegerOrInfinity(it);\n var length = toLength(number);\n if (number !== length) throw $RangeError('Wrong length or index');\n return length;\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var toPositiveInteger = require('../internals/to-positive-integer');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it, BYTES) {\n var offset = toPositiveInteger(it);\n if (offset % BYTES) throw $RangeError('Wrong offset');\n return offset;\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar $RangeError = RangeError;\n\nmodule.exports = function (it) {\n var result = toIntegerOrInfinity(it);\n if (result < 0) throw $RangeError(\"The argument can't be less than 0\");\n return result;\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar test = {};\n\ntest[TO_STRING_TAG] = 'z';\n\nmodule.exports = String(test) === '[object z]';\n","var classof = require('../internals/classof');\n\nvar $String = String;\n\nmodule.exports = function (argument) {\n if (classof(argument) === 'Symbol') throw TypeError('Cannot convert a Symbol value to a string');\n return $String(argument);\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayBufferModule = require('../internals/array-buffer');\nvar anInstance = require('../internals/an-instance');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar isIntegralNumber = require('../internals/is-integral-number');\nvar toLength = require('../internals/to-length');\nvar toIndex = require('../internals/to-index');\nvar toOffset = require('../internals/to-offset');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar classof = require('../internals/classof');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar create = require('../internals/object-create');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar getOwnPropertyNames = require('../internals/object-get-own-property-names').f;\nvar typedArrayFrom = require('../internals/typed-array-from');\nvar forEach = require('../internals/array-iteration').forEach;\nvar setSpecies = require('../internals/set-species');\nvar definePropertyModule = require('../internals/object-define-property');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar InternalStateModule = require('../internals/internal-state');\nvar inheritIfRequired = require('../internals/inherit-if-required');\n\nvar getInternalState = InternalStateModule.get;\nvar setInternalState = InternalStateModule.set;\nvar enforceInternalState = InternalStateModule.enforce;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar round = Math.round;\nvar RangeError = global.RangeError;\nvar ArrayBuffer = ArrayBufferModule.ArrayBuffer;\nvar ArrayBufferPrototype = ArrayBuffer.prototype;\nvar DataView = ArrayBufferModule.DataView;\nvar NATIVE_ARRAY_BUFFER_VIEWS = ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS;\nvar TYPED_ARRAY_TAG = ArrayBufferViewCore.TYPED_ARRAY_TAG;\nvar TypedArray = ArrayBufferViewCore.TypedArray;\nvar TypedArrayPrototype = ArrayBufferViewCore.TypedArrayPrototype;\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar isTypedArray = ArrayBufferViewCore.isTypedArray;\nvar BYTES_PER_ELEMENT = 'BYTES_PER_ELEMENT';\nvar WRONG_LENGTH = 'Wrong length';\n\nvar fromList = function (C, list) {\n aTypedArrayConstructor(C);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n};\n\nvar addGetter = function (it, key) {\n nativeDefineProperty(it, key, { get: function () {\n return getInternalState(this)[key];\n } });\n};\n\nvar isArrayBuffer = function (it) {\n var klass;\n return isPrototypeOf(ArrayBufferPrototype, it) || (klass = classof(it)) == 'ArrayBuffer' || klass == 'SharedArrayBuffer';\n};\n\nvar isTypedArrayIndex = function (target, key) {\n return isTypedArray(target)\n && !isSymbol(key)\n && key in target\n && isIntegralNumber(+key)\n && key >= 0;\n};\n\nvar wrappedGetOwnPropertyDescriptor = function getOwnPropertyDescriptor(target, key) {\n key = toPropertyKey(key);\n return isTypedArrayIndex(target, key)\n ? createPropertyDescriptor(2, target[key])\n : nativeGetOwnPropertyDescriptor(target, key);\n};\n\nvar wrappedDefineProperty = function defineProperty(target, key, descriptor) {\n key = toPropertyKey(key);\n if (isTypedArrayIndex(target, key)\n && isObject(descriptor)\n && hasOwn(descriptor, 'value')\n && !hasOwn(descriptor, 'get')\n && !hasOwn(descriptor, 'set')\n // TODO: add validation descriptor w/o calling accessors\n && !descriptor.configurable\n && (!hasOwn(descriptor, 'writable') || descriptor.writable)\n && (!hasOwn(descriptor, 'enumerable') || descriptor.enumerable)\n ) {\n target[key] = descriptor.value;\n return target;\n } return nativeDefineProperty(target, key, descriptor);\n};\n\nif (DESCRIPTORS) {\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n getOwnPropertyDescriptorModule.f = wrappedGetOwnPropertyDescriptor;\n definePropertyModule.f = wrappedDefineProperty;\n addGetter(TypedArrayPrototype, 'buffer');\n addGetter(TypedArrayPrototype, 'byteOffset');\n addGetter(TypedArrayPrototype, 'byteLength');\n addGetter(TypedArrayPrototype, 'length');\n }\n\n $({ target: 'Object', stat: true, forced: !NATIVE_ARRAY_BUFFER_VIEWS }, {\n getOwnPropertyDescriptor: wrappedGetOwnPropertyDescriptor,\n defineProperty: wrappedDefineProperty\n });\n\n module.exports = function (TYPE, wrapper, CLAMPED) {\n var BYTES = TYPE.match(/\\d+$/)[0] / 8;\n var CONSTRUCTOR_NAME = TYPE + (CLAMPED ? 'Clamped' : '') + 'Array';\n var GETTER = 'get' + TYPE;\n var SETTER = 'set' + TYPE;\n var NativeTypedArrayConstructor = global[CONSTRUCTOR_NAME];\n var TypedArrayConstructor = NativeTypedArrayConstructor;\n var TypedArrayConstructorPrototype = TypedArrayConstructor && TypedArrayConstructor.prototype;\n var exported = {};\n\n var getter = function (that, index) {\n var data = getInternalState(that);\n return data.view[GETTER](index * BYTES + data.byteOffset, true);\n };\n\n var setter = function (that, index, value) {\n var data = getInternalState(that);\n if (CLAMPED) value = (value = round(value)) < 0 ? 0 : value > 0xFF ? 0xFF : value & 0xFF;\n data.view[SETTER](index * BYTES + data.byteOffset, value, true);\n };\n\n var addElement = function (that, index) {\n nativeDefineProperty(that, index, {\n get: function () {\n return getter(this, index);\n },\n set: function (value) {\n return setter(this, index, value);\n },\n enumerable: true\n });\n };\n\n if (!NATIVE_ARRAY_BUFFER_VIEWS) {\n TypedArrayConstructor = wrapper(function (that, data, offset, $length) {\n anInstance(that, TypedArrayConstructorPrototype);\n var index = 0;\n var byteOffset = 0;\n var buffer, byteLength, length;\n if (!isObject(data)) {\n length = toIndex(data);\n byteLength = length * BYTES;\n buffer = new ArrayBuffer(byteLength);\n } else if (isArrayBuffer(data)) {\n buffer = data;\n byteOffset = toOffset(offset, BYTES);\n var $len = data.byteLength;\n if ($length === undefined) {\n if ($len % BYTES) throw RangeError(WRONG_LENGTH);\n byteLength = $len - byteOffset;\n if (byteLength < 0) throw RangeError(WRONG_LENGTH);\n } else {\n byteLength = toLength($length) * BYTES;\n if (byteLength + byteOffset > $len) throw RangeError(WRONG_LENGTH);\n }\n length = byteLength / BYTES;\n } else if (isTypedArray(data)) {\n return fromList(TypedArrayConstructor, data);\n } else {\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }\n setInternalState(that, {\n buffer: buffer,\n byteOffset: byteOffset,\n byteLength: byteLength,\n length: length,\n view: new DataView(buffer)\n });\n while (index < length) addElement(that, index++);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n TypedArrayConstructorPrototype = TypedArrayConstructor.prototype = create(TypedArrayPrototype);\n } else if (TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS) {\n TypedArrayConstructor = wrapper(function (dummy, data, typedArrayOffset, $length) {\n anInstance(dummy, TypedArrayConstructorPrototype);\n return inheritIfRequired(function () {\n if (!isObject(data)) return new NativeTypedArrayConstructor(toIndex(data));\n if (isArrayBuffer(data)) return $length !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES), $length)\n : typedArrayOffset !== undefined\n ? new NativeTypedArrayConstructor(data, toOffset(typedArrayOffset, BYTES))\n : new NativeTypedArrayConstructor(data);\n if (isTypedArray(data)) return fromList(TypedArrayConstructor, data);\n return call(typedArrayFrom, TypedArrayConstructor, data);\n }(), dummy, TypedArrayConstructor);\n });\n\n if (setPrototypeOf) setPrototypeOf(TypedArrayConstructor, TypedArray);\n forEach(getOwnPropertyNames(NativeTypedArrayConstructor), function (key) {\n if (!(key in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, key, NativeTypedArrayConstructor[key]);\n }\n });\n TypedArrayConstructor.prototype = TypedArrayConstructorPrototype;\n }\n\n if (TypedArrayConstructorPrototype.constructor !== TypedArrayConstructor) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, 'constructor', TypedArrayConstructor);\n }\n\n enforceInternalState(TypedArrayConstructorPrototype).TypedArrayConstructor = TypedArrayConstructor;\n\n if (TYPED_ARRAY_TAG) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, TYPED_ARRAY_TAG, CONSTRUCTOR_NAME);\n }\n\n var FORCED = TypedArrayConstructor != NativeTypedArrayConstructor;\n\n exported[CONSTRUCTOR_NAME] = TypedArrayConstructor;\n\n $({ global: true, constructor: true, forced: FORCED, sham: !NATIVE_ARRAY_BUFFER_VIEWS }, exported);\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructor)) {\n createNonEnumerableProperty(TypedArrayConstructor, BYTES_PER_ELEMENT, BYTES);\n }\n\n if (!(BYTES_PER_ELEMENT in TypedArrayConstructorPrototype)) {\n createNonEnumerableProperty(TypedArrayConstructorPrototype, BYTES_PER_ELEMENT, BYTES);\n }\n\n setSpecies(CONSTRUCTOR_NAME);\n };\n} else module.exports = function () { /* empty */ };\n","/* eslint-disable no-new -- required for testing */\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\nvar NATIVE_ARRAY_BUFFER_VIEWS = require('../internals/array-buffer-view-core').NATIVE_ARRAY_BUFFER_VIEWS;\n\nvar ArrayBuffer = global.ArrayBuffer;\nvar Int8Array = global.Int8Array;\n\nmodule.exports = !NATIVE_ARRAY_BUFFER_VIEWS || !fails(function () {\n Int8Array(1);\n}) || !fails(function () {\n new Int8Array(-1);\n}) || !checkCorrectnessOfIteration(function (iterable) {\n new Int8Array();\n new Int8Array(null);\n new Int8Array(1.5);\n new Int8Array(iterable);\n}, true) || fails(function () {\n // Safari (11+) bug - a reason why even Safari 13 should load a typed array polyfill\n return new Int8Array(new ArrayBuffer(2), 1, undefined).length !== 1;\n});\n","var arrayFromConstructorAndList = require('../internals/array-from-constructor-and-list');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nmodule.exports = function (instance, list) {\n return arrayFromConstructorAndList(typedArraySpeciesConstructor(instance), list);\n};\n","var bind = require('../internals/function-bind-context');\nvar call = require('../internals/function-call');\nvar aConstructor = require('../internals/a-constructor');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar getIterator = require('../internals/get-iterator');\nvar getIteratorMethod = require('../internals/get-iterator-method');\nvar isArrayIteratorMethod = require('../internals/is-array-iterator-method');\nvar isBigIntArray = require('../internals/is-big-int-array');\nvar aTypedArrayConstructor = require('../internals/array-buffer-view-core').aTypedArrayConstructor;\nvar toBigInt = require('../internals/to-big-int');\n\nmodule.exports = function from(source /* , mapfn, thisArg */) {\n var C = aConstructor(this);\n var O = toObject(source);\n var argumentsLength = arguments.length;\n var mapfn = argumentsLength > 1 ? arguments[1] : undefined;\n var mapping = mapfn !== undefined;\n var iteratorMethod = getIteratorMethod(O);\n var i, length, result, thisIsBigIntArray, value, step, iterator, next;\n if (iteratorMethod && !isArrayIteratorMethod(iteratorMethod)) {\n iterator = getIterator(O, iteratorMethod);\n next = iterator.next;\n O = [];\n while (!(step = call(next, iterator)).done) {\n O.push(step.value);\n }\n }\n if (mapping && argumentsLength > 2) {\n mapfn = bind(mapfn, arguments[2]);\n }\n length = lengthOfArrayLike(O);\n result = new (aTypedArrayConstructor(C))(length);\n thisIsBigIntArray = isBigIntArray(result);\n for (i = 0; length > i; i++) {\n value = mapping ? mapfn(O[i], i) : O[i];\n // FF30- typed arrays doesn't properly convert objects to typed array values\n result[i] = thisIsBigIntArray ? toBigInt(value) : +value;\n }\n return result;\n};\n","var ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar speciesConstructor = require('../internals/species-constructor');\n\nvar aTypedArrayConstructor = ArrayBufferViewCore.aTypedArrayConstructor;\nvar getTypedArrayConstructor = ArrayBufferViewCore.getTypedArrayConstructor;\n\n// a part of `TypedArraySpeciesCreate` abstract operation\n// https://tc39.es/ecma262/#typedarray-species-create\nmodule.exports = function (originalArray) {\n return aTypedArrayConstructor(speciesConstructor(originalArray, getTypedArrayConstructor(originalArray)));\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var $TypeError = TypeError;\n\nmodule.exports = function (passed, required) {\n if (passed < required) throw $TypeError('Not enough arguments');\n return passed;\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var path = require('../internals/path');\nvar hasOwn = require('../internals/has-own-property');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineProperty = require('../internals/object-define-property').f;\n\nmodule.exports = function (NAME) {\n var Symbol = path.Symbol || (path.Symbol = {});\n if (!hasOwn(Symbol, NAME)) defineProperty(Symbol, NAME, {\n value: wrappedWellKnownSymbolModule.f(NAME)\n });\n};\n","var wellKnownSymbol = require('../internals/well-known-symbol');\n\nexports.f = wellKnownSymbol;\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar symbolFor = Symbol && Symbol['for'];\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name) || !(NATIVE_SYMBOL || typeof WellKnownSymbolsStore[name] == 'string')) {\n var description = 'Symbol.' + name;\n if (NATIVE_SYMBOL && hasOwn(Symbol, name)) {\n WellKnownSymbolsStore[name] = Symbol[name];\n } else if (USE_SYMBOL_AS_UID && symbolFor) {\n WellKnownSymbolsStore[name] = symbolFor(description);\n } else {\n WellKnownSymbolsStore[name] = createWellKnownSymbol(description);\n }\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar arrayBufferModule = require('../internals/array-buffer');\nvar setSpecies = require('../internals/set-species');\n\nvar ARRAY_BUFFER = 'ArrayBuffer';\nvar ArrayBuffer = arrayBufferModule[ARRAY_BUFFER];\nvar NativeArrayBuffer = global[ARRAY_BUFFER];\n\n// `ArrayBuffer` constructor\n// https://tc39.es/ecma262/#sec-arraybuffer-constructor\n$({ global: true, constructor: true, forced: NativeArrayBuffer !== ArrayBuffer }, {\n ArrayBuffer: ArrayBuffer\n});\n\nsetSpecies(ARRAY_BUFFER);\n","'use strict';\nvar $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isObject = require('../internals/is-object');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar createProperty = require('../internals/create-property');\nvar arraySpeciesCreate = require('../internals/array-species-create');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar V8_VERSION = require('../internals/engine-v8-version');\n\nvar IS_CONCAT_SPREADABLE = wellKnownSymbol('isConcatSpreadable');\n\n// We can't use this feature detection in V8 since it causes\n// deoptimization and serious performance degradation\n// https://github.com/zloirock/core-js/issues/679\nvar IS_CONCAT_SPREADABLE_SUPPORT = V8_VERSION >= 51 || !fails(function () {\n var array = [];\n array[IS_CONCAT_SPREADABLE] = false;\n return array.concat()[0] !== array;\n});\n\nvar SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('concat');\n\nvar isConcatSpreadable = function (O) {\n if (!isObject(O)) return false;\n var spreadable = O[IS_CONCAT_SPREADABLE];\n return spreadable !== undefined ? !!spreadable : isArray(O);\n};\n\nvar FORCED = !IS_CONCAT_SPREADABLE_SUPPORT || !SPECIES_SUPPORT;\n\n// `Array.prototype.concat` method\n// https://tc39.es/ecma262/#sec-array.prototype.concat\n// with adding support of @@isConcatSpreadable and @@species\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n concat: function concat(arg) {\n var O = toObject(this);\n var A = arraySpeciesCreate(O, 0);\n var n = 0;\n var i, k, length, len, E;\n for (i = -1, length = arguments.length; i < length; i++) {\n E = i === -1 ? O : arguments[i];\n if (isConcatSpreadable(E)) {\n len = lengthOfArrayLike(E);\n doesNotExceedSafeInteger(n + len);\n for (k = 0; k < len; k++, n++) if (k in E) createProperty(A, n, E[k]);\n } else {\n doesNotExceedSafeInteger(n + 1);\n createProperty(A, n++, E);\n }\n }\n A.length = n;\n return A;\n }\n});\n","var $ = require('../internals/export');\nvar fill = require('../internals/array-fill');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// `Array.prototype.fill` method\n// https://tc39.es/ecma262/#sec-array.prototype.fill\n$({ target: 'Array', proto: true }, {\n fill: fill\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('fill');\n","'use strict';\nvar $ = require('../internals/export');\nvar $filter = require('../internals/array-iteration').filter;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('filter');\n\n// `Array.prototype.filter` method\n// https://tc39.es/ecma262/#sec-array.prototype.filter\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n filter: function filter(callbackfn /* , thisArg */) {\n return $filter(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","var $ = require('../internals/export');\nvar from = require('../internals/array-from');\nvar checkCorrectnessOfIteration = require('../internals/check-correctness-of-iteration');\n\nvar INCORRECT_ITERATION = !checkCorrectnessOfIteration(function (iterable) {\n // eslint-disable-next-line es/no-array-from -- required for testing\n Array.from(iterable);\n});\n\n// `Array.from` method\n// https://tc39.es/ecma262/#sec-array.from\n$({ target: 'Array', stat: true, forced: INCORRECT_ITERATION }, {\n from: from\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $includes = require('../internals/array-includes').includes;\nvar fails = require('../internals/fails');\nvar addToUnscopables = require('../internals/add-to-unscopables');\n\n// FF99+ bug\nvar BROKEN_ON_SPARSE = fails(function () {\n return !Array(1).includes();\n});\n\n// `Array.prototype.includes` method\n// https://tc39.es/ecma262/#sec-array.prototype.includes\n$({ target: 'Array', proto: true, forced: BROKEN_ON_SPARSE }, {\n includes: function includes(el /* , fromIndex = 0 */) {\n return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('includes');\n","'use strict';\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar addToUnscopables = require('../internals/add-to-unscopables');\nvar Iterators = require('../internals/iterators');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineProperty = require('../internals/object-define-property').f;\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\n\nvar ARRAY_ITERATOR = 'Array Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(ARRAY_ITERATOR);\n\n// `Array.prototype.entries` method\n// https://tc39.es/ecma262/#sec-array.prototype.entries\n// `Array.prototype.keys` method\n// https://tc39.es/ecma262/#sec-array.prototype.keys\n// `Array.prototype.values` method\n// https://tc39.es/ecma262/#sec-array.prototype.values\n// `Array.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-array.prototype-@@iterator\n// `CreateArrayIterator` internal method\n// https://tc39.es/ecma262/#sec-createarrayiterator\nmodule.exports = defineIterator(Array, 'Array', function (iterated, kind) {\n setInternalState(this, {\n type: ARRAY_ITERATOR,\n target: toIndexedObject(iterated), // target\n index: 0, // next index\n kind: kind // kind\n });\n// `%ArrayIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%arrayiteratorprototype%.next\n}, function () {\n var state = getInternalState(this);\n var target = state.target;\n var kind = state.kind;\n var index = state.index++;\n if (!target || index >= target.length) {\n state.target = undefined;\n return createIterResultObject(undefined, true);\n }\n if (kind == 'keys') return createIterResultObject(index, false);\n if (kind == 'values') return createIterResultObject(target[index], false);\n return createIterResultObject([index, target[index]], false);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values%\n// https://tc39.es/ecma262/#sec-createunmappedargumentsobject\n// https://tc39.es/ecma262/#sec-createmappedargumentsobject\nvar values = Iterators.Arguments = Iterators.Array;\n\n// https://tc39.es/ecma262/#sec-array.prototype-@@unscopables\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n// V8 ~ Chrome 45- bug\nif (!IS_PURE && DESCRIPTORS && values.name !== 'values') try {\n defineProperty(values, 'name', { value: 'values' });\n} catch (error) { /* empty */ }\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IndexedObject = require('../internals/indexed-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar arrayMethodIsStrict = require('../internals/array-method-is-strict');\n\nvar nativeJoin = uncurryThis([].join);\n\nvar ES3_STRINGS = IndexedObject != Object;\nvar STRICT_METHOD = arrayMethodIsStrict('join', ',');\n\n// `Array.prototype.join` method\n// https://tc39.es/ecma262/#sec-array.prototype.join\n$({ target: 'Array', proto: true, forced: ES3_STRINGS || !STRICT_METHOD }, {\n join: function join(separator) {\n return nativeJoin(toIndexedObject(this), separator === undefined ? ',' : separator);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar $map = require('../internals/array-iteration').map;\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('map');\n\n// `Array.prototype.map` method\n// https://tc39.es/ecma262/#sec-array.prototype.map\n// with adding support of @@species\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n map: function map(callbackfn /* , thisArg */) {\n return $map(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar isArray = require('../internals/is-array');\nvar isConstructor = require('../internals/is-constructor');\nvar isObject = require('../internals/is-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar createProperty = require('../internals/create-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar arrayMethodHasSpeciesSupport = require('../internals/array-method-has-species-support');\nvar nativeSlice = require('../internals/array-slice');\n\nvar HAS_SPECIES_SUPPORT = arrayMethodHasSpeciesSupport('slice');\n\nvar SPECIES = wellKnownSymbol('species');\nvar $Array = Array;\nvar max = Math.max;\n\n// `Array.prototype.slice` method\n// https://tc39.es/ecma262/#sec-array.prototype.slice\n// fallback for not array-like ES3 strings and DOM objects\n$({ target: 'Array', proto: true, forced: !HAS_SPECIES_SUPPORT }, {\n slice: function slice(start, end) {\n var O = toIndexedObject(this);\n var length = lengthOfArrayLike(O);\n var k = toAbsoluteIndex(start, length);\n var fin = toAbsoluteIndex(end === undefined ? length : end, length);\n // inline `ArraySpeciesCreate` for usage native `Array#slice` where it's possible\n var Constructor, result, n;\n if (isArray(O)) {\n Constructor = O.constructor;\n // cross-realm fallback\n if (isConstructor(Constructor) && (Constructor === $Array || isArray(Constructor.prototype))) {\n Constructor = undefined;\n } else if (isObject(Constructor)) {\n Constructor = Constructor[SPECIES];\n if (Constructor === null) Constructor = undefined;\n }\n if (Constructor === $Array || Constructor === undefined) {\n return nativeSlice(O, k, fin);\n }\n }\n result = new (Constructor === undefined ? $Array : Constructor)(max(fin - k, 0));\n for (n = 0; k < fin; k++, n++) if (k in O) createProperty(result, n, O[k]);\n result.length = n;\n return result;\n }\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar FUNCTION_NAME_EXISTS = require('../internals/function-name').EXISTS;\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar defineProperty = require('../internals/object-define-property').f;\n\nvar FunctionPrototype = Function.prototype;\nvar functionToString = uncurryThis(FunctionPrototype.toString);\nvar nameRE = /function\\b(?:\\s|\\/\\*[\\S\\s]*?\\*\\/|\\/\\/[^\\n\\r]*[\\n\\r]+)*([^\\s(/]*)/;\nvar regExpExec = uncurryThis(nameRE.exec);\nvar NAME = 'name';\n\n// Function instances `.name` property\n// https://tc39.es/ecma262/#sec-function-instances-name\nif (DESCRIPTORS && !FUNCTION_NAME_EXISTS) {\n defineProperty(FunctionPrototype, NAME, {\n configurable: true,\n get: function () {\n try {\n return regExpExec(nameRE, functionToString(this))[1];\n } catch (error) {\n return '';\n }\n }\n });\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isArray = require('../internals/is-array');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar arraySlice = require('../internals/array-slice');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nvar $stringify = getBuiltIn('JSON', 'stringify');\nvar exec = uncurryThis(/./.exec);\nvar charAt = uncurryThis(''.charAt);\nvar charCodeAt = uncurryThis(''.charCodeAt);\nvar replace = uncurryThis(''.replace);\nvar numberToString = uncurryThis(1.0.toString);\n\nvar tester = /[\\uD800-\\uDFFF]/g;\nvar low = /^[\\uD800-\\uDBFF]$/;\nvar hi = /^[\\uDC00-\\uDFFF]$/;\n\nvar WRONG_SYMBOLS_CONVERSION = !NATIVE_SYMBOL || fails(function () {\n var symbol = getBuiltIn('Symbol')();\n // MS Edge converts symbol values to JSON as {}\n return $stringify([symbol]) != '[null]'\n // WebKit converts symbol values to JSON as null\n || $stringify({ a: symbol }) != '{}'\n // V8 throws on boxed symbols\n || $stringify(Object(symbol)) != '{}';\n});\n\n// https://github.com/tc39/proposal-well-formed-stringify\nvar ILL_FORMED_UNICODE = fails(function () {\n return $stringify('\\uDF06\\uD834') !== '\"\\\\udf06\\\\ud834\"'\n || $stringify('\\uDEAD') !== '\"\\\\udead\"';\n});\n\nvar stringifyWithSymbolsFix = function (it, replacer) {\n var args = arraySlice(arguments);\n var $replacer = replacer;\n if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined\n if (!isArray(replacer)) replacer = function (key, value) {\n if (isCallable($replacer)) value = call($replacer, this, key, value);\n if (!isSymbol(value)) return value;\n };\n args[1] = replacer;\n return apply($stringify, null, args);\n};\n\nvar fixIllFormed = function (match, offset, string) {\n var prev = charAt(string, offset - 1);\n var next = charAt(string, offset + 1);\n if ((exec(low, match) && !exec(hi, next)) || (exec(hi, match) && !exec(low, prev))) {\n return '\\\\u' + numberToString(charCodeAt(match, 0), 16);\n } return match;\n};\n\nif ($stringify) {\n // `JSON.stringify` method\n // https://tc39.es/ecma262/#sec-json.stringify\n $({ target: 'JSON', stat: true, arity: 3, forced: WRONG_SYMBOLS_CONVERSION || ILL_FORMED_UNICODE }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n stringify: function stringify(it, replacer, space) {\n var args = arraySlice(arguments);\n var result = apply(WRONG_SYMBOLS_CONVERSION ? stringifyWithSymbolsFix : $stringify, null, args);\n return ILL_FORMED_UNICODE && typeof result == 'string' ? replace(result, tester, fixIllFormed) : result;\n }\n });\n}\n","var global = require('../internals/global');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// JSON[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-json-@@tostringtag\nsetToStringTag(global.JSON, 'JSON', true);\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Map` constructor\n// https://tc39.es/ecma262/#sec-map-objects\ncollection('Map', function (init) {\n return function Map() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.map.constructor');\n","var setToStringTag = require('../internals/set-to-string-tag');\n\n// Math[@@toStringTag] property\n// https://tc39.es/ecma262/#sec-math-@@tostringtag\nsetToStringTag(Math, 'Math', true);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar thisNumberValue = require('../internals/this-number-value');\nvar $repeat = require('../internals/string-repeat');\nvar fails = require('../internals/fails');\n\nvar $RangeError = RangeError;\nvar $String = String;\nvar floor = Math.floor;\nvar repeat = uncurryThis($repeat);\nvar stringSlice = uncurryThis(''.slice);\nvar nativeToFixed = uncurryThis(1.0.toFixed);\n\nvar pow = function (x, n, acc) {\n return n === 0 ? acc : n % 2 === 1 ? pow(x, n - 1, acc * x) : pow(x * x, n / 2, acc);\n};\n\nvar log = function (x) {\n var n = 0;\n var x2 = x;\n while (x2 >= 4096) {\n n += 12;\n x2 /= 4096;\n }\n while (x2 >= 2) {\n n += 1;\n x2 /= 2;\n } return n;\n};\n\nvar multiply = function (data, n, c) {\n var index = -1;\n var c2 = c;\n while (++index < 6) {\n c2 += n * data[index];\n data[index] = c2 % 1e7;\n c2 = floor(c2 / 1e7);\n }\n};\n\nvar divide = function (data, n) {\n var index = 6;\n var c = 0;\n while (--index >= 0) {\n c += data[index];\n data[index] = floor(c / n);\n c = (c % n) * 1e7;\n }\n};\n\nvar dataToString = function (data) {\n var index = 6;\n var s = '';\n while (--index >= 0) {\n if (s !== '' || index === 0 || data[index] !== 0) {\n var t = $String(data[index]);\n s = s === '' ? t : s + repeat('0', 7 - t.length) + t;\n }\n } return s;\n};\n\nvar FORCED = fails(function () {\n return nativeToFixed(0.00008, 3) !== '0.000' ||\n nativeToFixed(0.9, 0) !== '1' ||\n nativeToFixed(1.255, 2) !== '1.25' ||\n nativeToFixed(1000000000000000128.0, 0) !== '1000000000000000128';\n}) || !fails(function () {\n // V8 ~ Android 4.3-\n nativeToFixed({});\n});\n\n// `Number.prototype.toFixed` method\n// https://tc39.es/ecma262/#sec-number.prototype.tofixed\n$({ target: 'Number', proto: true, forced: FORCED }, {\n toFixed: function toFixed(fractionDigits) {\n var number = thisNumberValue(this);\n var fractDigits = toIntegerOrInfinity(fractionDigits);\n var data = [0, 0, 0, 0, 0, 0];\n var sign = '';\n var result = '0';\n var e, z, j, k;\n\n // TODO: ES2018 increased the maximum number of fraction digits to 100, need to improve the implementation\n if (fractDigits < 0 || fractDigits > 20) throw $RangeError('Incorrect fraction digits');\n // eslint-disable-next-line no-self-compare -- NaN check\n if (number != number) return 'NaN';\n if (number <= -1e21 || number >= 1e21) return $String(number);\n if (number < 0) {\n sign = '-';\n number = -number;\n }\n if (number > 1e-21) {\n e = log(number * pow(2, 69, 1)) - 69;\n z = e < 0 ? number * pow(2, -e, 1) : number / pow(2, e, 1);\n z *= 0x10000000000000;\n e = 52 - e;\n if (e > 0) {\n multiply(data, 0, z);\n j = fractDigits;\n while (j >= 7) {\n multiply(data, 1e7, 0);\n j -= 7;\n }\n multiply(data, pow(10, j, 1), 0);\n j = e - 1;\n while (j >= 23) {\n divide(data, 1 << 23);\n j -= 23;\n }\n divide(data, 1 << j);\n multiply(data, 1, 1);\n divide(data, 2);\n result = dataToString(data);\n } else {\n multiply(data, 0, z);\n multiply(data, 1 << -e, 0);\n result = dataToString(data) + repeat('0', fractDigits);\n }\n }\n if (fractDigits > 0) {\n k = result.length;\n result = sign + (k <= fractDigits\n ? '0.' + repeat('0', fractDigits - k) + result\n : stringSlice(result, 0, k - fractDigits) + '.' + stringSlice(result, k - fractDigits));\n } else {\n result = sign + result;\n } return result;\n }\n});\n","var $ = require('../internals/export');\nvar assign = require('../internals/object-assign');\n\n// `Object.assign` method\n// https://tc39.es/ecma262/#sec-object.assign\n// eslint-disable-next-line es/no-object-assign -- required for testing\n$({ target: 'Object', stat: true, arity: 2, forced: Object.assign !== assign }, {\n assign: assign\n});\n","var $ = require('../internals/export');\nvar $entries = require('../internals/object-to-array').entries;\n\n// `Object.entries` method\n// https://tc39.es/ecma262/#sec-object.entries\n$({ target: 'Object', stat: true }, {\n entries: function entries(O) {\n return $entries(O);\n }\n});\n","var $ = require('../internals/export');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar toObject = require('../internals/to-object');\n\n// V8 ~ Chrome 38 and 39 `Object.getOwnPropertySymbols` fails on primitives\n// https://bugs.chromium.org/p/v8/issues/detail?id=3443\nvar FORCED = !NATIVE_SYMBOL || fails(function () { getOwnPropertySymbolsModule.f(1); });\n\n// `Object.getOwnPropertySymbols` method\n// https://tc39.es/ecma262/#sec-object.getownpropertysymbols\n$({ target: 'Object', stat: true, forced: FORCED }, {\n getOwnPropertySymbols: function getOwnPropertySymbols(it) {\n var $getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return $getOwnPropertySymbols ? $getOwnPropertySymbols(toObject(it)) : [];\n }\n});\n","var $ = require('../internals/export');\nvar fails = require('../internals/fails');\nvar toObject = require('../internals/to-object');\nvar nativeGetPrototypeOf = require('../internals/object-get-prototype-of');\nvar CORRECT_PROTOTYPE_GETTER = require('../internals/correct-prototype-getter');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeGetPrototypeOf(1); });\n\n// `Object.getPrototypeOf` method\n// https://tc39.es/ecma262/#sec-object.getprototypeof\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES, sham: !CORRECT_PROTOTYPE_GETTER }, {\n getPrototypeOf: function getPrototypeOf(it) {\n return nativeGetPrototypeOf(toObject(it));\n }\n});\n\n","var $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar nativeKeys = require('../internals/object-keys');\nvar fails = require('../internals/fails');\n\nvar FAILS_ON_PRIMITIVES = fails(function () { nativeKeys(1); });\n\n// `Object.keys` method\n// https://tc39.es/ecma262/#sec-object.keys\n$({ target: 'Object', stat: true, forced: FAILS_ON_PRIMITIVES }, {\n keys: function keys(it) {\n return nativeKeys(toObject(it));\n }\n});\n","var TO_STRING_TAG_SUPPORT = require('../internals/to-string-tag-support');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar toString = require('../internals/object-to-string');\n\n// `Object.prototype.toString` method\n// https://tc39.es/ecma262/#sec-object.prototype.tostring\nif (!TO_STRING_TAG_SUPPORT) {\n defineBuiltIn(Object.prototype, 'toString', toString, { unsafe: true });\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\n\n// `Promise.allSettled` method\n// https://tc39.es/ecma262/#sec-promise.allsettled\n$({ target: 'Promise', stat: true }, {\n allSettled: function allSettled(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call(promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'fulfilled', value: value };\n --remaining || resolve(values);\n }, function (error) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = { status: 'rejected', reason: error };\n --remaining || resolve(values);\n });\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.all` method\n// https://tc39.es/ecma262/#sec-promise.all\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n all: function all(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var resolve = capability.resolve;\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n var values = [];\n var counter = 0;\n var remaining = 1;\n iterate(iterable, function (promise) {\n var index = counter++;\n var alreadyCalled = false;\n remaining++;\n call($promiseResolve, C, promise).then(function (value) {\n if (alreadyCalled) return;\n alreadyCalled = true;\n values[index] = value;\n --remaining || resolve(values);\n }, reject);\n });\n --remaining || resolve(values);\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar defineBuiltIn = require('../internals/define-built-in');\n\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\n\n// `Promise.prototype.catch` method\n// https://tc39.es/ecma262/#sec-promise.prototype.catch\n$({ target: 'Promise', proto: true, forced: FORCED_PROMISE_CONSTRUCTOR, real: true }, {\n 'catch': function (onRejected) {\n return this.then(undefined, onRejected);\n }\n});\n\n// makes sure that native promise-based APIs `Promise#catch` properly works with patched `Promise#then`\nif (!IS_PURE && isCallable(NativePromiseConstructor)) {\n var method = getBuiltIn('Promise').prototype['catch'];\n if (NativePromisePrototype['catch'] !== method) {\n defineBuiltIn(NativePromisePrototype, 'catch', method, { unsafe: true });\n }\n}\n","'use strict';\nvar $ = require('../internals/export');\nvar IS_PURE = require('../internals/is-pure');\nvar IS_NODE = require('../internals/engine-is-node');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar setPrototypeOf = require('../internals/object-set-prototype-of');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar setSpecies = require('../internals/set-species');\nvar aCallable = require('../internals/a-callable');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\nvar anInstance = require('../internals/an-instance');\nvar speciesConstructor = require('../internals/species-constructor');\nvar task = require('../internals/task').set;\nvar microtask = require('../internals/microtask');\nvar hostReportErrors = require('../internals/host-report-errors');\nvar perform = require('../internals/perform');\nvar Queue = require('../internals/queue');\nvar InternalStateModule = require('../internals/internal-state');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar PromiseConstructorDetection = require('../internals/promise-constructor-detection');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\n\nvar PROMISE = 'Promise';\nvar FORCED_PROMISE_CONSTRUCTOR = PromiseConstructorDetection.CONSTRUCTOR;\nvar NATIVE_PROMISE_REJECTION_EVENT = PromiseConstructorDetection.REJECTION_EVENT;\nvar NATIVE_PROMISE_SUBCLASSING = PromiseConstructorDetection.SUBCLASSING;\nvar getInternalPromiseState = InternalStateModule.getterFor(PROMISE);\nvar setInternalState = InternalStateModule.set;\nvar NativePromisePrototype = NativePromiseConstructor && NativePromiseConstructor.prototype;\nvar PromiseConstructor = NativePromiseConstructor;\nvar PromisePrototype = NativePromisePrototype;\nvar TypeError = global.TypeError;\nvar document = global.document;\nvar process = global.process;\nvar newPromiseCapability = newPromiseCapabilityModule.f;\nvar newGenericPromiseCapability = newPromiseCapability;\n\nvar DISPATCH_EVENT = !!(document && document.createEvent && global.dispatchEvent);\nvar UNHANDLED_REJECTION = 'unhandledrejection';\nvar REJECTION_HANDLED = 'rejectionhandled';\nvar PENDING = 0;\nvar FULFILLED = 1;\nvar REJECTED = 2;\nvar HANDLED = 1;\nvar UNHANDLED = 2;\n\nvar Internal, OwnPromiseCapability, PromiseWrapper, nativeThen;\n\n// helpers\nvar isThenable = function (it) {\n var then;\n return isObject(it) && isCallable(then = it.then) ? then : false;\n};\n\nvar callReaction = function (reaction, state) {\n var value = state.value;\n var ok = state.state == FULFILLED;\n var handler = ok ? reaction.ok : reaction.fail;\n var resolve = reaction.resolve;\n var reject = reaction.reject;\n var domain = reaction.domain;\n var result, then, exited;\n try {\n if (handler) {\n if (!ok) {\n if (state.rejection === UNHANDLED) onHandleUnhandled(state);\n state.rejection = HANDLED;\n }\n if (handler === true) result = value;\n else {\n if (domain) domain.enter();\n result = handler(value); // can throw\n if (domain) {\n domain.exit();\n exited = true;\n }\n }\n if (result === reaction.promise) {\n reject(TypeError('Promise-chain cycle'));\n } else if (then = isThenable(result)) {\n call(then, result, resolve, reject);\n } else resolve(result);\n } else reject(value);\n } catch (error) {\n if (domain && !exited) domain.exit();\n reject(error);\n }\n};\n\nvar notify = function (state, isReject) {\n if (state.notified) return;\n state.notified = true;\n microtask(function () {\n var reactions = state.reactions;\n var reaction;\n while (reaction = reactions.get()) {\n callReaction(reaction, state);\n }\n state.notified = false;\n if (isReject && !state.rejection) onUnhandled(state);\n });\n};\n\nvar dispatchEvent = function (name, promise, reason) {\n var event, handler;\n if (DISPATCH_EVENT) {\n event = document.createEvent('Event');\n event.promise = promise;\n event.reason = reason;\n event.initEvent(name, false, true);\n global.dispatchEvent(event);\n } else event = { promise: promise, reason: reason };\n if (!NATIVE_PROMISE_REJECTION_EVENT && (handler = global['on' + name])) handler(event);\n else if (name === UNHANDLED_REJECTION) hostReportErrors('Unhandled promise rejection', reason);\n};\n\nvar onUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n var value = state.value;\n var IS_UNHANDLED = isUnhandled(state);\n var result;\n if (IS_UNHANDLED) {\n result = perform(function () {\n if (IS_NODE) {\n process.emit('unhandledRejection', value, promise);\n } else dispatchEvent(UNHANDLED_REJECTION, promise, value);\n });\n // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should\n state.rejection = IS_NODE || isUnhandled(state) ? UNHANDLED : HANDLED;\n if (result.error) throw result.value;\n }\n });\n};\n\nvar isUnhandled = function (state) {\n return state.rejection !== HANDLED && !state.parent;\n};\n\nvar onHandleUnhandled = function (state) {\n call(task, global, function () {\n var promise = state.facade;\n if (IS_NODE) {\n process.emit('rejectionHandled', promise);\n } else dispatchEvent(REJECTION_HANDLED, promise, state.value);\n });\n};\n\nvar bind = function (fn, state, unwrap) {\n return function (value) {\n fn(state, value, unwrap);\n };\n};\n\nvar internalReject = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n state.value = value;\n state.state = REJECTED;\n notify(state, true);\n};\n\nvar internalResolve = function (state, value, unwrap) {\n if (state.done) return;\n state.done = true;\n if (unwrap) state = unwrap;\n try {\n if (state.facade === value) throw TypeError(\"Promise can't be resolved itself\");\n var then = isThenable(value);\n if (then) {\n microtask(function () {\n var wrapper = { done: false };\n try {\n call(then, value,\n bind(internalResolve, wrapper, state),\n bind(internalReject, wrapper, state)\n );\n } catch (error) {\n internalReject(wrapper, error, state);\n }\n });\n } else {\n state.value = value;\n state.state = FULFILLED;\n notify(state, false);\n }\n } catch (error) {\n internalReject({ done: false }, error, state);\n }\n};\n\n// constructor polyfill\nif (FORCED_PROMISE_CONSTRUCTOR) {\n // 25.4.3.1 Promise(executor)\n PromiseConstructor = function Promise(executor) {\n anInstance(this, PromisePrototype);\n aCallable(executor);\n call(Internal, this);\n var state = getInternalPromiseState(this);\n try {\n executor(bind(internalResolve, state), bind(internalReject, state));\n } catch (error) {\n internalReject(state, error);\n }\n };\n\n PromisePrototype = PromiseConstructor.prototype;\n\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n Internal = function Promise(executor) {\n setInternalState(this, {\n type: PROMISE,\n done: false,\n notified: false,\n parent: false,\n reactions: new Queue(),\n rejection: false,\n state: PENDING,\n value: undefined\n });\n };\n\n // `Promise.prototype.then` method\n // https://tc39.es/ecma262/#sec-promise.prototype.then\n Internal.prototype = defineBuiltIn(PromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var state = getInternalPromiseState(this);\n var reaction = newPromiseCapability(speciesConstructor(this, PromiseConstructor));\n state.parent = true;\n reaction.ok = isCallable(onFulfilled) ? onFulfilled : true;\n reaction.fail = isCallable(onRejected) && onRejected;\n reaction.domain = IS_NODE ? process.domain : undefined;\n if (state.state == PENDING) state.reactions.add(reaction);\n else microtask(function () {\n callReaction(reaction, state);\n });\n return reaction.promise;\n });\n\n OwnPromiseCapability = function () {\n var promise = new Internal();\n var state = getInternalPromiseState(promise);\n this.promise = promise;\n this.resolve = bind(internalResolve, state);\n this.reject = bind(internalReject, state);\n };\n\n newPromiseCapabilityModule.f = newPromiseCapability = function (C) {\n return C === PromiseConstructor || C === PromiseWrapper\n ? new OwnPromiseCapability(C)\n : newGenericPromiseCapability(C);\n };\n\n if (!IS_PURE && isCallable(NativePromiseConstructor) && NativePromisePrototype !== Object.prototype) {\n nativeThen = NativePromisePrototype.then;\n\n if (!NATIVE_PROMISE_SUBCLASSING) {\n // make `Promise#then` return a polyfilled `Promise` for native promise-based APIs\n defineBuiltIn(NativePromisePrototype, 'then', function then(onFulfilled, onRejected) {\n var that = this;\n return new PromiseConstructor(function (resolve, reject) {\n call(nativeThen, that, resolve, reject);\n }).then(onFulfilled, onRejected);\n // https://github.com/zloirock/core-js/issues/640\n }, { unsafe: true });\n }\n\n // make `.constructor === Promise` work for native promise-based APIs\n try {\n delete NativePromisePrototype.constructor;\n } catch (error) { /* empty */ }\n\n // make `instanceof Promise` work for native promise-based APIs\n if (setPrototypeOf) {\n setPrototypeOf(NativePromisePrototype, PromisePrototype);\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n Promise: PromiseConstructor\n});\n\nsetToStringTag(PromiseConstructor, PROMISE, false, true);\nsetSpecies(PROMISE);\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.promise.constructor');\nrequire('../modules/es.promise.all');\nrequire('../modules/es.promise.catch');\nrequire('../modules/es.promise.race');\nrequire('../modules/es.promise.reject');\nrequire('../modules/es.promise.resolve');\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar aCallable = require('../internals/a-callable');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar perform = require('../internals/perform');\nvar iterate = require('../internals/iterate');\nvar PROMISE_STATICS_INCORRECT_ITERATION = require('../internals/promise-statics-incorrect-iteration');\n\n// `Promise.race` method\n// https://tc39.es/ecma262/#sec-promise.race\n$({ target: 'Promise', stat: true, forced: PROMISE_STATICS_INCORRECT_ITERATION }, {\n race: function race(iterable) {\n var C = this;\n var capability = newPromiseCapabilityModule.f(C);\n var reject = capability.reject;\n var result = perform(function () {\n var $promiseResolve = aCallable(C.resolve);\n iterate(iterable, function (promise) {\n call($promiseResolve, C, promise).then(capability.resolve, reject);\n });\n });\n if (result.error) reject(result.value);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar newPromiseCapabilityModule = require('../internals/new-promise-capability');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\n\n// `Promise.reject` method\n// https://tc39.es/ecma262/#sec-promise.reject\n$({ target: 'Promise', stat: true, forced: FORCED_PROMISE_CONSTRUCTOR }, {\n reject: function reject(r) {\n var capability = newPromiseCapabilityModule.f(this);\n call(capability.reject, undefined, r);\n return capability.promise;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar IS_PURE = require('../internals/is-pure');\nvar NativePromiseConstructor = require('../internals/promise-native-constructor');\nvar FORCED_PROMISE_CONSTRUCTOR = require('../internals/promise-constructor-detection').CONSTRUCTOR;\nvar promiseResolve = require('../internals/promise-resolve');\n\nvar PromiseConstructorWrapper = getBuiltIn('Promise');\nvar CHECK_WRAPPER = IS_PURE && !FORCED_PROMISE_CONSTRUCTOR;\n\n// `Promise.resolve` method\n// https://tc39.es/ecma262/#sec-promise.resolve\n$({ target: 'Promise', stat: true, forced: IS_PURE || FORCED_PROMISE_CONSTRUCTOR }, {\n resolve: function resolve(x) {\n return promiseResolve(CHECK_WRAPPER && this === PromiseConstructorWrapper ? NativePromiseConstructor : this, x);\n }\n});\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar apply = require('../internals/function-apply');\nvar bind = require('../internals/function-bind');\nvar aConstructor = require('../internals/a-constructor');\nvar anObject = require('../internals/an-object');\nvar isObject = require('../internals/is-object');\nvar create = require('../internals/object-create');\nvar fails = require('../internals/fails');\n\nvar nativeConstruct = getBuiltIn('Reflect', 'construct');\nvar ObjectPrototype = Object.prototype;\nvar push = [].push;\n\n// `Reflect.construct` method\n// https://tc39.es/ecma262/#sec-reflect.construct\n// MS Edge supports only 2 arguments and argumentsList argument is optional\n// FF Nightly sets third argument as `new.target`, but does not create `this` from it\nvar NEW_TARGET_BUG = fails(function () {\n function F() { /* empty */ }\n return !(nativeConstruct(function () { /* empty */ }, [], F) instanceof F);\n});\n\nvar ARGS_BUG = !fails(function () {\n nativeConstruct(function () { /* empty */ });\n});\n\nvar FORCED = NEW_TARGET_BUG || ARGS_BUG;\n\n$({ target: 'Reflect', stat: true, forced: FORCED, sham: FORCED }, {\n construct: function construct(Target, args /* , newTarget */) {\n aConstructor(Target);\n anObject(args);\n var newTarget = arguments.length < 3 ? Target : aConstructor(arguments[2]);\n if (ARGS_BUG && !NEW_TARGET_BUG) return nativeConstruct(Target, args, newTarget);\n if (Target == newTarget) {\n // w/o altered newTarget, optimization for 0-4 arguments\n switch (args.length) {\n case 0: return new Target();\n case 1: return new Target(args[0]);\n case 2: return new Target(args[0], args[1]);\n case 3: return new Target(args[0], args[1], args[2]);\n case 4: return new Target(args[0], args[1], args[2], args[3]);\n }\n // w/o altered newTarget, lot of arguments case\n var $args = [null];\n apply(push, $args, args);\n return new (apply(bind, Target, $args))();\n }\n // with altered newTarget, not support built-in constructors\n var proto = newTarget.prototype;\n var instance = create(isObject(proto) ? proto : ObjectPrototype);\n var result = apply(Target, instance, args);\n return isObject(result) ? result : instance;\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n// `RegExp.prototype.exec` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.exec\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar $ = require('../internals/export');\nvar call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar anObject = require('../internals/an-object');\nvar toString = require('../internals/to-string');\n\nvar DELEGATES_TO_EXEC = function () {\n var execCalled = false;\n var re = /[ac]/;\n re.exec = function () {\n execCalled = true;\n return /./.exec.apply(this, arguments);\n };\n return re.test('abc') === true && execCalled;\n}();\n\nvar nativeTest = /./.test;\n\n// `RegExp.prototype.test` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.test\n$({ target: 'RegExp', proto: true, forced: !DELEGATES_TO_EXEC }, {\n test: function (S) {\n var R = anObject(this);\n var string = toString(S);\n var exec = R.exec;\n if (!isCallable(exec)) return call(nativeTest, R, string);\n var result = call(exec, R, string);\n if (result === null) return false;\n anObject(result);\n return true;\n }\n});\n","'use strict';\nvar PROPER_FUNCTION_NAME = require('../internals/function-name').PROPER;\nvar defineBuiltIn = require('../internals/define-built-in');\nvar anObject = require('../internals/an-object');\nvar $toString = require('../internals/to-string');\nvar fails = require('../internals/fails');\nvar getRegExpFlags = require('../internals/regexp-get-flags');\n\nvar TO_STRING = 'toString';\nvar RegExpPrototype = RegExp.prototype;\nvar nativeToString = RegExpPrototype[TO_STRING];\n\nvar NOT_GENERIC = fails(function () { return nativeToString.call({ source: 'a', flags: 'b' }) != '/a/b'; });\n// FF44- RegExp#toString has a wrong name\nvar INCORRECT_NAME = PROPER_FUNCTION_NAME && nativeToString.name != TO_STRING;\n\n// `RegExp.prototype.toString` method\n// https://tc39.es/ecma262/#sec-regexp.prototype.tostring\nif (NOT_GENERIC || INCORRECT_NAME) {\n defineBuiltIn(RegExp.prototype, TO_STRING, function toString() {\n var R = anObject(this);\n var pattern = $toString(R.source);\n var flags = $toString(getRegExpFlags(R));\n return '/' + pattern + '/' + flags;\n }, { unsafe: true });\n}\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionStrong = require('../internals/collection-strong');\n\n// `Set` constructor\n// https://tc39.es/ecma262/#sec-set-objects\ncollection('Set', function (init) {\n return function Set() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionStrong);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.set.constructor');\n","'use strict';\nvar $ = require('../internals/export');\nvar createHTML = require('../internals/create-html');\nvar forcedStringHTMLMethod = require('../internals/string-html-forced');\n\n// `String.prototype.fontsize` method\n// https://tc39.es/ecma262/#sec-string.prototype.fontsize\n$({ target: 'String', proto: true, forced: forcedStringHTMLMethod('fontsize') }, {\n fontsize: function fontsize(size) {\n return createHTML(this, 'font', 'size', size);\n }\n});\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar toString = require('../internals/to-string');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\n\nvar stringIndexOf = uncurryThis(''.indexOf);\n\n// `String.prototype.includes` method\n// https://tc39.es/ecma262/#sec-string.prototype.includes\n$({ target: 'String', proto: true, forced: !correctIsRegExpLogic('includes') }, {\n includes: function includes(searchString /* , position = 0 */) {\n return !!~stringIndexOf(\n toString(requireObjectCoercible(this)),\n toString(notARegExp(searchString)),\n arguments.length > 1 ? arguments[1] : undefined\n );\n }\n});\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\nvar toString = require('../internals/to-string');\nvar InternalStateModule = require('../internals/internal-state');\nvar defineIterator = require('../internals/iterator-define');\nvar createIterResultObject = require('../internals/create-iter-result-object');\n\nvar STRING_ITERATOR = 'String Iterator';\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(STRING_ITERATOR);\n\n// `String.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-string.prototype-@@iterator\ndefineIterator(String, 'String', function (iterated) {\n setInternalState(this, {\n type: STRING_ITERATOR,\n string: toString(iterated),\n index: 0\n });\n// `%StringIteratorPrototype%.next` method\n// https://tc39.es/ecma262/#sec-%stringiteratorprototype%.next\n}, function next() {\n var state = getInternalState(this);\n var string = state.string;\n var index = state.index;\n var point;\n if (index >= string.length) return createIterResultObject(undefined, true);\n point = charAt(string, index);\n state.index += point.length;\n return createIterResultObject(point, false);\n});\n","'use strict';\nvar apply = require('../internals/function-apply');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar fails = require('../internals/fails');\nvar anObject = require('../internals/an-object');\nvar isCallable = require('../internals/is-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\nvar toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar getMethod = require('../internals/get-method');\nvar getSubstitution = require('../internals/get-substitution');\nvar regExpExec = require('../internals/regexp-exec-abstract');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar REPLACE = wellKnownSymbol('replace');\nvar max = Math.max;\nvar min = Math.min;\nvar concat = uncurryThis([].concat);\nvar push = uncurryThis([].push);\nvar stringIndexOf = uncurryThis(''.indexOf);\nvar stringSlice = uncurryThis(''.slice);\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n // eslint-disable-next-line regexp/prefer-escape-replacement-dollar-char -- required for testing\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n // eslint-disable-next-line regexp/no-useless-dollar-replacements -- false positive\n return ''.replace(re, '$') !== '7';\n});\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', function (_, nativeReplace, maybeCallNative) {\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.es/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = isNullOrUndefined(searchValue) ? undefined : getMethod(searchValue, REPLACE);\n return replacer\n ? call(replacer, searchValue, O, replaceValue)\n : call(nativeReplace, toString(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.es/ecma262/#sec-regexp.prototype-@@replace\n function (string, replaceValue) {\n var rx = anObject(this);\n var S = toString(string);\n\n if (\n typeof replaceValue == 'string' &&\n stringIndexOf(replaceValue, UNSAFE_SUBSTITUTE) === -1 &&\n stringIndexOf(replaceValue, '$<') === -1\n ) {\n var res = maybeCallNative(nativeReplace, rx, S, replaceValue);\n if (res.done) return res.value;\n }\n\n var functionalReplace = isCallable(replaceValue);\n if (!functionalReplace) replaceValue = toString(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n push(results, result);\n if (!global) break;\n\n var matchStr = toString(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = toString(result[0]);\n var position = max(min(toIntegerOrInfinity(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) push(captures, maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = concat([matched], captures, position, S);\n if (namedCaptures !== undefined) push(replacerArgs, namedCaptures);\n var replacement = toString(apply(replaceValue, undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += stringSlice(S, nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + stringSlice(S, nextSourcePosition);\n }\n ];\n}, !REPLACE_SUPPORTS_NAMED_GROUPS || !REPLACE_KEEPS_$0 || REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE);\n","'use strict';\nvar $ = require('../internals/export');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar toLength = require('../internals/to-length');\nvar toString = require('../internals/to-string');\nvar notARegExp = require('../internals/not-a-regexp');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar correctIsRegExpLogic = require('../internals/correct-is-regexp-logic');\nvar IS_PURE = require('../internals/is-pure');\n\n// eslint-disable-next-line es/no-string-prototype-startswith -- safe\nvar nativeStartsWith = uncurryThis(''.startsWith);\nvar stringSlice = uncurryThis(''.slice);\nvar min = Math.min;\n\nvar CORRECT_IS_REGEXP_LOGIC = correctIsRegExpLogic('startsWith');\n// https://github.com/zloirock/core-js/pull/702\nvar MDN_POLYFILL_BUG = !IS_PURE && !CORRECT_IS_REGEXP_LOGIC && !!function () {\n var descriptor = getOwnPropertyDescriptor(String.prototype, 'startsWith');\n return descriptor && !descriptor.writable;\n}();\n\n// `String.prototype.startsWith` method\n// https://tc39.es/ecma262/#sec-string.prototype.startswith\n$({ target: 'String', proto: true, forced: !MDN_POLYFILL_BUG && !CORRECT_IS_REGEXP_LOGIC }, {\n startsWith: function startsWith(searchString /* , position = 0 */) {\n var that = toString(requireObjectCoercible(this));\n notARegExp(searchString);\n var index = toLength(min(arguments.length > 1 ? arguments[1] : undefined, that.length));\n var search = toString(searchString);\n return nativeStartsWith\n ? nativeStartsWith(that, search, index)\n : stringSlice(that, index, index + search.length) === search;\n }\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.asyncIterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.asynciterator\ndefineWellKnownSymbol('asyncIterator');\n","'use strict';\nvar $ = require('../internals/export');\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar IS_PURE = require('../internals/is-pure');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar fails = require('../internals/fails');\nvar hasOwn = require('../internals/has-own-property');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar anObject = require('../internals/an-object');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar $toString = require('../internals/to-string');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar nativeObjectCreate = require('../internals/object-create');\nvar objectKeys = require('../internals/object-keys');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertyNamesExternal = require('../internals/object-get-own-property-names-external');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\nvar definePropertiesModule = require('../internals/object-define-properties');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar shared = require('../internals/shared');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\nvar uid = require('../internals/uid');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar wrappedWellKnownSymbolModule = require('../internals/well-known-symbol-wrapped');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar defineSymbolToPrimitive = require('../internals/symbol-define-to-primitive');\nvar setToStringTag = require('../internals/set-to-string-tag');\nvar InternalStateModule = require('../internals/internal-state');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar HIDDEN = sharedKey('hidden');\nvar SYMBOL = 'Symbol';\nvar PROTOTYPE = 'prototype';\n\nvar setInternalState = InternalStateModule.set;\nvar getInternalState = InternalStateModule.getterFor(SYMBOL);\n\nvar ObjectPrototype = Object[PROTOTYPE];\nvar $Symbol = global.Symbol;\nvar SymbolPrototype = $Symbol && $Symbol[PROTOTYPE];\nvar TypeError = global.TypeError;\nvar QObject = global.QObject;\nvar nativeGetOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\nvar nativeDefineProperty = definePropertyModule.f;\nvar nativeGetOwnPropertyNames = getOwnPropertyNamesExternal.f;\nvar nativePropertyIsEnumerable = propertyIsEnumerableModule.f;\nvar push = uncurryThis([].push);\n\nvar AllSymbols = shared('symbols');\nvar ObjectPrototypeSymbols = shared('op-symbols');\nvar WellKnownSymbolsStore = shared('wks');\n\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar USE_SETTER = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDescriptor = DESCRIPTORS && fails(function () {\n return nativeObjectCreate(nativeDefineProperty({}, 'a', {\n get: function () { return nativeDefineProperty(this, 'a', { value: 7 }).a; }\n })).a != 7;\n}) ? function (O, P, Attributes) {\n var ObjectPrototypeDescriptor = nativeGetOwnPropertyDescriptor(ObjectPrototype, P);\n if (ObjectPrototypeDescriptor) delete ObjectPrototype[P];\n nativeDefineProperty(O, P, Attributes);\n if (ObjectPrototypeDescriptor && O !== ObjectPrototype) {\n nativeDefineProperty(ObjectPrototype, P, ObjectPrototypeDescriptor);\n }\n} : nativeDefineProperty;\n\nvar wrap = function (tag, description) {\n var symbol = AllSymbols[tag] = nativeObjectCreate(SymbolPrototype);\n setInternalState(symbol, {\n type: SYMBOL,\n tag: tag,\n description: description\n });\n if (!DESCRIPTORS) symbol.description = description;\n return symbol;\n};\n\nvar $defineProperty = function defineProperty(O, P, Attributes) {\n if (O === ObjectPrototype) $defineProperty(ObjectPrototypeSymbols, P, Attributes);\n anObject(O);\n var key = toPropertyKey(P);\n anObject(Attributes);\n if (hasOwn(AllSymbols, key)) {\n if (!Attributes.enumerable) {\n if (!hasOwn(O, HIDDEN)) nativeDefineProperty(O, HIDDEN, createPropertyDescriptor(1, {}));\n O[HIDDEN][key] = true;\n } else {\n if (hasOwn(O, HIDDEN) && O[HIDDEN][key]) O[HIDDEN][key] = false;\n Attributes = nativeObjectCreate(Attributes, { enumerable: createPropertyDescriptor(0, false) });\n } return setSymbolDescriptor(O, key, Attributes);\n } return nativeDefineProperty(O, key, Attributes);\n};\n\nvar $defineProperties = function defineProperties(O, Properties) {\n anObject(O);\n var properties = toIndexedObject(Properties);\n var keys = objectKeys(properties).concat($getOwnPropertySymbols(properties));\n $forEach(keys, function (key) {\n if (!DESCRIPTORS || call($propertyIsEnumerable, properties, key)) $defineProperty(O, key, properties[key]);\n });\n return O;\n};\n\nvar $create = function create(O, Properties) {\n return Properties === undefined ? nativeObjectCreate(O) : $defineProperties(nativeObjectCreate(O), Properties);\n};\n\nvar $propertyIsEnumerable = function propertyIsEnumerable(V) {\n var P = toPropertyKey(V);\n var enumerable = call(nativePropertyIsEnumerable, this, P);\n if (this === ObjectPrototype && hasOwn(AllSymbols, P) && !hasOwn(ObjectPrototypeSymbols, P)) return false;\n return enumerable || !hasOwn(this, P) || !hasOwn(AllSymbols, P) || hasOwn(this, HIDDEN) && this[HIDDEN][P]\n ? enumerable : true;\n};\n\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(O, P) {\n var it = toIndexedObject(O);\n var key = toPropertyKey(P);\n if (it === ObjectPrototype && hasOwn(AllSymbols, key) && !hasOwn(ObjectPrototypeSymbols, key)) return;\n var descriptor = nativeGetOwnPropertyDescriptor(it, key);\n if (descriptor && hasOwn(AllSymbols, key) && !(hasOwn(it, HIDDEN) && it[HIDDEN][key])) {\n descriptor.enumerable = true;\n }\n return descriptor;\n};\n\nvar $getOwnPropertyNames = function getOwnPropertyNames(O) {\n var names = nativeGetOwnPropertyNames(toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (!hasOwn(AllSymbols, key) && !hasOwn(hiddenKeys, key)) push(result, key);\n });\n return result;\n};\n\nvar $getOwnPropertySymbols = function (O) {\n var IS_OBJECT_PROTOTYPE = O === ObjectPrototype;\n var names = nativeGetOwnPropertyNames(IS_OBJECT_PROTOTYPE ? ObjectPrototypeSymbols : toIndexedObject(O));\n var result = [];\n $forEach(names, function (key) {\n if (hasOwn(AllSymbols, key) && (!IS_OBJECT_PROTOTYPE || hasOwn(ObjectPrototype, key))) {\n push(result, AllSymbols[key]);\n }\n });\n return result;\n};\n\n// `Symbol` constructor\n// https://tc39.es/ecma262/#sec-symbol-constructor\nif (!NATIVE_SYMBOL) {\n $Symbol = function Symbol() {\n if (isPrototypeOf(SymbolPrototype, this)) throw TypeError('Symbol is not a constructor');\n var description = !arguments.length || arguments[0] === undefined ? undefined : $toString(arguments[0]);\n var tag = uid(description);\n var setter = function (value) {\n if (this === ObjectPrototype) call(setter, ObjectPrototypeSymbols, value);\n if (hasOwn(this, HIDDEN) && hasOwn(this[HIDDEN], tag)) this[HIDDEN][tag] = false;\n setSymbolDescriptor(this, tag, createPropertyDescriptor(1, value));\n };\n if (DESCRIPTORS && USE_SETTER) setSymbolDescriptor(ObjectPrototype, tag, { configurable: true, set: setter });\n return wrap(tag, description);\n };\n\n SymbolPrototype = $Symbol[PROTOTYPE];\n\n defineBuiltIn(SymbolPrototype, 'toString', function toString() {\n return getInternalState(this).tag;\n });\n\n defineBuiltIn($Symbol, 'withoutSetter', function (description) {\n return wrap(uid(description), description);\n });\n\n propertyIsEnumerableModule.f = $propertyIsEnumerable;\n definePropertyModule.f = $defineProperty;\n definePropertiesModule.f = $defineProperties;\n getOwnPropertyDescriptorModule.f = $getOwnPropertyDescriptor;\n getOwnPropertyNamesModule.f = getOwnPropertyNamesExternal.f = $getOwnPropertyNames;\n getOwnPropertySymbolsModule.f = $getOwnPropertySymbols;\n\n wrappedWellKnownSymbolModule.f = function (name) {\n return wrap(wellKnownSymbol(name), name);\n };\n\n if (DESCRIPTORS) {\n // https://github.com/tc39/proposal-Symbol-description\n nativeDefineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n return getInternalState(this).description;\n }\n });\n if (!IS_PURE) {\n defineBuiltIn(ObjectPrototype, 'propertyIsEnumerable', $propertyIsEnumerable, { unsafe: true });\n }\n }\n}\n\n$({ global: true, constructor: true, wrap: true, forced: !NATIVE_SYMBOL, sham: !NATIVE_SYMBOL }, {\n Symbol: $Symbol\n});\n\n$forEach(objectKeys(WellKnownSymbolsStore), function (name) {\n defineWellKnownSymbol(name);\n});\n\n$({ target: SYMBOL, stat: true, forced: !NATIVE_SYMBOL }, {\n useSetter: function () { USE_SETTER = true; },\n useSimple: function () { USE_SETTER = false; }\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL, sham: !DESCRIPTORS }, {\n // `Object.create` method\n // https://tc39.es/ecma262/#sec-object.create\n create: $create,\n // `Object.defineProperty` method\n // https://tc39.es/ecma262/#sec-object.defineproperty\n defineProperty: $defineProperty,\n // `Object.defineProperties` method\n // https://tc39.es/ecma262/#sec-object.defineproperties\n defineProperties: $defineProperties,\n // `Object.getOwnPropertyDescriptor` method\n // https://tc39.es/ecma262/#sec-object.getownpropertydescriptors\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor\n});\n\n$({ target: 'Object', stat: true, forced: !NATIVE_SYMBOL }, {\n // `Object.getOwnPropertyNames` method\n // https://tc39.es/ecma262/#sec-object.getownpropertynames\n getOwnPropertyNames: $getOwnPropertyNames\n});\n\n// `Symbol.prototype[@@toPrimitive]` method\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@toprimitive\ndefineSymbolToPrimitive();\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag($Symbol, SYMBOL);\n\nhiddenKeys[HIDDEN] = true;\n","// `Symbol.prototype.description` getter\n// https://tc39.es/ecma262/#sec-symbol.prototype.description\n'use strict';\nvar $ = require('../internals/export');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar toString = require('../internals/to-string');\nvar defineProperty = require('../internals/object-define-property').f;\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\n\nvar NativeSymbol = global.Symbol;\nvar SymbolPrototype = NativeSymbol && NativeSymbol.prototype;\n\nif (DESCRIPTORS && isCallable(NativeSymbol) && (!('description' in SymbolPrototype) ||\n // Safari 12 bug\n NativeSymbol().description !== undefined\n)) {\n var EmptyStringDescriptionStore = {};\n // wrap Symbol constructor for correct work with undefined description\n var SymbolWrapper = function Symbol() {\n var description = arguments.length < 1 || arguments[0] === undefined ? undefined : toString(arguments[0]);\n var result = isPrototypeOf(SymbolPrototype, this)\n ? new NativeSymbol(description)\n // in Edge 13, String(Symbol(undefined)) === 'Symbol(undefined)'\n : description === undefined ? NativeSymbol() : NativeSymbol(description);\n if (description === '') EmptyStringDescriptionStore[result] = true;\n return result;\n };\n\n copyConstructorProperties(SymbolWrapper, NativeSymbol);\n SymbolWrapper.prototype = SymbolPrototype;\n SymbolPrototype.constructor = SymbolWrapper;\n\n var NATIVE_SYMBOL = String(NativeSymbol('test')) == 'Symbol(test)';\n var thisSymbolValue = uncurryThis(SymbolPrototype.valueOf);\n var symbolDescriptiveString = uncurryThis(SymbolPrototype.toString);\n var regexp = /^Symbol\\((.*)\\)[^)]+$/;\n var replace = uncurryThis(''.replace);\n var stringSlice = uncurryThis(''.slice);\n\n defineProperty(SymbolPrototype, 'description', {\n configurable: true,\n get: function description() {\n var symbol = thisSymbolValue(this);\n if (hasOwn(EmptyStringDescriptionStore, symbol)) return '';\n var string = symbolDescriptiveString(symbol);\n var desc = NATIVE_SYMBOL ? stringSlice(string, 7, -1) : replace(string, regexp, '$1');\n return desc === '' ? undefined : desc;\n }\n });\n\n $({ global: true, constructor: true, forced: true }, {\n Symbol: SymbolWrapper\n });\n}\n","var $ = require('../internals/export');\nvar getBuiltIn = require('../internals/get-built-in');\nvar hasOwn = require('../internals/has-own-property');\nvar toString = require('../internals/to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar StringToSymbolRegistry = shared('string-to-symbol-registry');\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.for` method\n// https://tc39.es/ecma262/#sec-symbol.for\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n 'for': function (key) {\n var string = toString(key);\n if (hasOwn(StringToSymbolRegistry, string)) return StringToSymbolRegistry[string];\n var symbol = getBuiltIn('Symbol')(string);\n StringToSymbolRegistry[string] = symbol;\n SymbolToStringRegistry[symbol] = string;\n return symbol;\n }\n});\n","var defineWellKnownSymbol = require('../internals/well-known-symbol-define');\n\n// `Symbol.iterator` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.iterator\ndefineWellKnownSymbol('iterator');\n","// TODO: Remove this module from `core-js@4` since it's split to modules listed below\nrequire('../modules/es.symbol.constructor');\nrequire('../modules/es.symbol.for');\nrequire('../modules/es.symbol.key-for');\nrequire('../modules/es.json.stringify');\nrequire('../modules/es.object.get-own-property-symbols');\n","var $ = require('../internals/export');\nvar hasOwn = require('../internals/has-own-property');\nvar isSymbol = require('../internals/is-symbol');\nvar tryToString = require('../internals/try-to-string');\nvar shared = require('../internals/shared');\nvar NATIVE_SYMBOL_REGISTRY = require('../internals/symbol-registry-detection');\n\nvar SymbolToStringRegistry = shared('symbol-to-string-registry');\n\n// `Symbol.keyFor` method\n// https://tc39.es/ecma262/#sec-symbol.keyfor\n$({ target: 'Symbol', stat: true, forced: !NATIVE_SYMBOL_REGISTRY }, {\n keyFor: function keyFor(sym) {\n if (!isSymbol(sym)) throw TypeError(tryToString(sym) + ' is not a symbol');\n if (hasOwn(SymbolToStringRegistry, sym)) return SymbolToStringRegistry[sym];\n }\n});\n","var getBuiltIn = require('../internals/get-built-in');\nvar defineWellKnownSymbol = require('../internals/well-known-symbol-define');\nvar setToStringTag = require('../internals/set-to-string-tag');\n\n// `Symbol.toStringTag` well-known symbol\n// https://tc39.es/ecma262/#sec-symbol.tostringtag\ndefineWellKnownSymbol('toStringTag');\n\n// `Symbol.prototype[@@toStringTag]` property\n// https://tc39.es/ecma262/#sec-symbol.prototype-@@tostringtag\nsetToStringTag(getBuiltIn('Symbol'), 'Symbol');\n","'use strict';\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $ArrayCopyWithin = require('../internals/array-copy-within');\n\nvar u$ArrayCopyWithin = uncurryThis($ArrayCopyWithin);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.copyWithin` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.copywithin\nexportTypedArrayMethod('copyWithin', function copyWithin(target, start /* , end */) {\n return u$ArrayCopyWithin(aTypedArray(this), target, start, arguments.length > 2 ? arguments[2] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $every = require('../internals/array-iteration').every;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.every` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.every\nexportTypedArrayMethod('every', function every(callbackfn /* , thisArg */) {\n return $every(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $fill = require('../internals/array-fill');\nvar toBigInt = require('../internals/to-big-int');\nvar classof = require('../internals/classof');\nvar call = require('../internals/function-call');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar slice = uncurryThis(''.slice);\n\n// V8 ~ Chrome < 59, Safari < 14.1, FF < 55, Edge <=18\nvar CONVERSION_BUG = fails(function () {\n var count = 0;\n // eslint-disable-next-line es/no-typed-arrays -- safe\n new Int8Array(2).fill({ valueOf: function () { return count++; } });\n return count !== 1;\n});\n\n// `%TypedArray%.prototype.fill` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.fill\nexportTypedArrayMethod('fill', function fill(value /* , start, end */) {\n var length = arguments.length;\n aTypedArray(this);\n var actualValue = slice(classof(this), 0, 3) === 'Big' ? toBigInt(value) : +value;\n return call($fill, this, actualValue, length > 1 ? arguments[1] : undefined, length > 2 ? arguments[2] : undefined);\n}, CONVERSION_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $filter = require('../internals/array-iteration').filter;\nvar fromSpeciesAndList = require('../internals/typed-array-from-species-and-list');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.filter` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.filter\nexportTypedArrayMethod('filter', function filter(callbackfn /* , thisArg */) {\n var list = $filter(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n return fromSpeciesAndList(this, list);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $findIndex = require('../internals/array-iteration').findIndex;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.findIndex` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.findindex\nexportTypedArrayMethod('findIndex', function findIndex(predicate /* , thisArg */) {\n return $findIndex(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $find = require('../internals/array-iteration').find;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.find` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.find\nexportTypedArrayMethod('find', function find(predicate /* , thisArg */) {\n return $find(aTypedArray(this), predicate, arguments.length > 1 ? arguments[1] : undefined);\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Float32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Float32', function (init) {\n return function Float32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $forEach = require('../internals/array-iteration').forEach;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.forEach` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.foreach\nexportTypedArrayMethod('forEach', function forEach(callbackfn /* , thisArg */) {\n $forEach(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS = require('../internals/typed-array-constructors-require-wrappers');\nvar exportTypedArrayStaticMethod = require('../internals/array-buffer-view-core').exportTypedArrayStaticMethod;\nvar typedArrayFrom = require('../internals/typed-array-from');\n\n// `%TypedArray%.from` method\n// https://tc39.es/ecma262/#sec-%typedarray%.from\nexportTypedArrayStaticMethod('from', typedArrayFrom, TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $includes = require('../internals/array-includes').includes;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.includes` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.includes\nexportTypedArrayMethod('includes', function includes(searchElement /* , fromIndex */) {\n return $includes(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $indexOf = require('../internals/array-includes').indexOf;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.indexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.indexof\nexportTypedArrayMethod('indexOf', function indexOf(searchElement /* , fromIndex */) {\n return $indexOf(aTypedArray(this), searchElement, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar fails = require('../internals/fails');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar ArrayIterators = require('../modules/es.array.iterator');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar Uint8Array = global.Uint8Array;\nvar arrayValues = uncurryThis(ArrayIterators.values);\nvar arrayKeys = uncurryThis(ArrayIterators.keys);\nvar arrayEntries = uncurryThis(ArrayIterators.entries);\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar TypedArrayPrototype = Uint8Array && Uint8Array.prototype;\n\nvar GENERIC = !fails(function () {\n TypedArrayPrototype[ITERATOR].call([1]);\n});\n\nvar ITERATOR_IS_VALUES = !!TypedArrayPrototype\n && TypedArrayPrototype.values\n && TypedArrayPrototype[ITERATOR] === TypedArrayPrototype.values\n && TypedArrayPrototype.values.name === 'values';\n\nvar typedArrayValues = function values() {\n return arrayValues(aTypedArray(this));\n};\n\n// `%TypedArray%.prototype.entries` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.entries\nexportTypedArrayMethod('entries', function entries() {\n return arrayEntries(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.keys` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.keys\nexportTypedArrayMethod('keys', function keys() {\n return arrayKeys(aTypedArray(this));\n}, GENERIC);\n// `%TypedArray%.prototype.values` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.values\nexportTypedArrayMethod('values', typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n// `%TypedArray%.prototype[@@iterator]` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype-@@iterator\nexportTypedArrayMethod(ITERATOR, typedArrayValues, GENERIC || !ITERATOR_IS_VALUES, { name: 'values' });\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $join = uncurryThis([].join);\n\n// `%TypedArray%.prototype.join` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.join\nexportTypedArrayMethod('join', function join(separator) {\n return $join(aTypedArray(this), separator);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar apply = require('../internals/function-apply');\nvar $lastIndexOf = require('../internals/array-last-index-of');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.lastIndexOf` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.lastindexof\nexportTypedArrayMethod('lastIndexOf', function lastIndexOf(searchElement /* , fromIndex */) {\n var length = arguments.length;\n return apply($lastIndexOf, aTypedArray(this), length > 1 ? [searchElement, arguments[1]] : [searchElement]);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $map = require('../internals/array-iteration').map;\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.map` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.map\nexportTypedArrayMethod('map', function map(mapfn /* , thisArg */) {\n return $map(aTypedArray(this), mapfn, arguments.length > 1 ? arguments[1] : undefined, function (O, length) {\n return new (typedArraySpeciesConstructor(O))(length);\n });\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduceRight = require('../internals/array-reduce').right;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduceRight` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduceright\nexportTypedArrayMethod('reduceRight', function reduceRight(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduceRight(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $reduce = require('../internals/array-reduce').left;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.reduce` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reduce\nexportTypedArrayMethod('reduce', function reduce(callbackfn /* , initialValue */) {\n var length = arguments.length;\n return $reduce(aTypedArray(this), callbackfn, length, length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar floor = Math.floor;\n\n// `%TypedArray%.prototype.reverse` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.reverse\nexportTypedArrayMethod('reverse', function reverse() {\n var that = this;\n var length = aTypedArray(that).length;\n var middle = floor(length / 2);\n var index = 0;\n var value;\n while (index < middle) {\n value = that[index];\n that[index++] = that[--length];\n that[length] = value;\n } return that;\n});\n","'use strict';\nvar global = require('../internals/global');\nvar call = require('../internals/function-call');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar toOffset = require('../internals/to-offset');\nvar toIndexedObject = require('../internals/to-object');\nvar fails = require('../internals/fails');\n\nvar RangeError = global.RangeError;\nvar Int8Array = global.Int8Array;\nvar Int8ArrayPrototype = Int8Array && Int8Array.prototype;\nvar $set = Int8ArrayPrototype && Int8ArrayPrototype.set;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS = !fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n var array = new Uint8ClampedArray(2);\n call($set, array, { length: 1, 0: 3 }, 1);\n return array[1] !== 3;\n});\n\n// https://bugs.chromium.org/p/v8/issues/detail?id=11294 and other\nvar TO_OBJECT_BUG = WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS && ArrayBufferViewCore.NATIVE_ARRAY_BUFFER_VIEWS && fails(function () {\n var array = new Int8Array(2);\n array.set(1);\n array.set('2', 1);\n return array[0] !== 0 || array[1] !== 2;\n});\n\n// `%TypedArray%.prototype.set` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.set\nexportTypedArrayMethod('set', function set(arrayLike /* , offset */) {\n aTypedArray(this);\n var offset = toOffset(arguments.length > 1 ? arguments[1] : undefined, 1);\n var src = toIndexedObject(arrayLike);\n if (WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS) return call($set, this, src, offset);\n var length = this.length;\n var len = lengthOfArrayLike(src);\n var index = 0;\n if (len + offset > length) throw RangeError('Wrong length');\n while (index < len) this[offset + index] = src[index++];\n}, !WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS || TO_OBJECT_BUG);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\nvar FORCED = fails(function () {\n // eslint-disable-next-line es/no-typed-arrays -- required for testing\n new Int8Array(1).slice();\n});\n\n// `%TypedArray%.prototype.slice` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.slice\nexportTypedArrayMethod('slice', function slice(start, end) {\n var list = arraySlice(aTypedArray(this), start, end);\n var C = typedArraySpeciesConstructor(this);\n var index = 0;\n var length = list.length;\n var result = new C(length);\n while (length > index) result[index] = list[index++];\n return result;\n}, FORCED);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar $some = require('../internals/array-iteration').some;\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.some` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.some\nexportTypedArrayMethod('some', function some(callbackfn /* , thisArg */) {\n return $some(aTypedArray(this), callbackfn, arguments.length > 1 ? arguments[1] : undefined);\n});\n","'use strict';\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar aCallable = require('../internals/a-callable');\nvar internalSort = require('../internals/array-sort');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar FF = require('../internals/engine-ff-version');\nvar IE_OR_EDGE = require('../internals/engine-is-ie-or-edge');\nvar V8 = require('../internals/engine-v8-version');\nvar WEBKIT = require('../internals/engine-webkit-version');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar Uint16Array = global.Uint16Array;\nvar nativeSort = Uint16Array && uncurryThis(Uint16Array.prototype.sort);\n\n// WebKit\nvar ACCEPT_INCORRECT_ARGUMENTS = !!nativeSort && !(fails(function () {\n nativeSort(new Uint16Array(2), null);\n}) && fails(function () {\n nativeSort(new Uint16Array(2), {});\n}));\n\nvar STABLE_SORT = !!nativeSort && !fails(function () {\n // feature detection can be too slow, so check engines versions\n if (V8) return V8 < 74;\n if (FF) return FF < 67;\n if (IE_OR_EDGE) return true;\n if (WEBKIT) return WEBKIT < 602;\n\n var array = new Uint16Array(516);\n var expected = Array(516);\n var index, mod;\n\n for (index = 0; index < 516; index++) {\n mod = index % 4;\n array[index] = 515 - index;\n expected[index] = index - 2 * mod + 3;\n }\n\n nativeSort(array, function (a, b) {\n return (a / 4 | 0) - (b / 4 | 0);\n });\n\n for (index = 0; index < 516; index++) {\n if (array[index] !== expected[index]) return true;\n }\n});\n\nvar getSortCompare = function (comparefn) {\n return function (x, y) {\n if (comparefn !== undefined) return +comparefn(x, y) || 0;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (y !== y) return -1;\n // eslint-disable-next-line no-self-compare -- NaN check\n if (x !== x) return 1;\n if (x === 0 && y === 0) return 1 / x > 0 && 1 / y < 0 ? 1 : -1;\n return x > y;\n };\n};\n\n// `%TypedArray%.prototype.sort` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.sort\nexportTypedArrayMethod('sort', function sort(comparefn) {\n if (comparefn !== undefined) aCallable(comparefn);\n if (STABLE_SORT) return nativeSort(this, comparefn);\n\n return internalSort(aTypedArray(this), getSortCompare(comparefn));\n}, !STABLE_SORT || ACCEPT_INCORRECT_ARGUMENTS);\n","'use strict';\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar typedArraySpeciesConstructor = require('../internals/typed-array-species-constructor');\n\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\n\n// `%TypedArray%.prototype.subarray` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.subarray\nexportTypedArrayMethod('subarray', function subarray(begin, end) {\n var O = aTypedArray(this);\n var length = O.length;\n var beginIndex = toAbsoluteIndex(begin, length);\n var C = typedArraySpeciesConstructor(O);\n return new C(\n O.buffer,\n O.byteOffset + beginIndex * O.BYTES_PER_ELEMENT,\n toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - beginIndex)\n );\n});\n","'use strict';\nvar global = require('../internals/global');\nvar apply = require('../internals/function-apply');\nvar ArrayBufferViewCore = require('../internals/array-buffer-view-core');\nvar fails = require('../internals/fails');\nvar arraySlice = require('../internals/array-slice');\n\nvar Int8Array = global.Int8Array;\nvar aTypedArray = ArrayBufferViewCore.aTypedArray;\nvar exportTypedArrayMethod = ArrayBufferViewCore.exportTypedArrayMethod;\nvar $toLocaleString = [].toLocaleString;\n\n// iOS Safari 6.x fails here\nvar TO_LOCALE_STRING_BUG = !!Int8Array && fails(function () {\n $toLocaleString.call(new Int8Array(1));\n});\n\nvar FORCED = fails(function () {\n return [1, 2].toLocaleString() != new Int8Array([1, 2]).toLocaleString();\n}) || !fails(function () {\n Int8Array.prototype.toLocaleString.call([1, 2]);\n});\n\n// `%TypedArray%.prototype.toLocaleString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tolocalestring\nexportTypedArrayMethod('toLocaleString', function toLocaleString() {\n return apply(\n $toLocaleString,\n TO_LOCALE_STRING_BUG ? arraySlice(aTypedArray(this)) : aTypedArray(this),\n arraySlice(arguments)\n );\n}, FORCED);\n","'use strict';\nvar exportTypedArrayMethod = require('../internals/array-buffer-view-core').exportTypedArrayMethod;\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\nvar uncurryThis = require('../internals/function-uncurry-this');\n\nvar Uint8Array = global.Uint8Array;\nvar Uint8ArrayPrototype = Uint8Array && Uint8Array.prototype || {};\nvar arrayToString = [].toString;\nvar join = uncurryThis([].join);\n\nif (fails(function () { arrayToString.call({}); })) {\n arrayToString = function toString() {\n return join(this);\n };\n}\n\nvar IS_NOT_ARRAY_METHOD = Uint8ArrayPrototype.toString != arrayToString;\n\n// `%TypedArray%.prototype.toString` method\n// https://tc39.es/ecma262/#sec-%typedarray%.prototype.tostring\nexportTypedArrayMethod('toString', arrayToString, IS_NOT_ARRAY_METHOD);\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint16Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint16', function (init) {\n return function Uint16Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint32Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint32', function (init) {\n return function Uint32Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","var createTypedArrayConstructor = require('../internals/typed-array-constructor');\n\n// `Uint8Array` constructor\n// https://tc39.es/ecma262/#sec-typedarray-objects\ncreateTypedArrayConstructor('Uint8', function (init) {\n return function Uint8Array(data, byteOffset, length) {\n return init(this, data, byteOffset, length);\n };\n});\n","'use strict';\nvar collection = require('../internals/collection');\nvar collectionWeak = require('../internals/collection-weak');\n\n// `WeakSet` constructor\n// https://tc39.es/ecma262/#sec-weakset-constructor\ncollection('WeakSet', function (init) {\n return function WeakSet() { return init(this, arguments.length ? arguments[0] : undefined); };\n}, collectionWeak);\n","// TODO: Remove this module from `core-js@4` since it's replaced to module below\nrequire('../modules/es.weak-set.constructor');\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar forEach = require('../internals/array-for-each');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar handlePrototype = function (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype && CollectionPrototype.forEach !== forEach) try {\n createNonEnumerableProperty(CollectionPrototype, 'forEach', forEach);\n } catch (error) {\n CollectionPrototype.forEach = forEach;\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n if (DOMIterables[COLLECTION_NAME]) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype);\n }\n}\n\nhandlePrototype(DOMTokenListPrototype);\n","var global = require('../internals/global');\nvar DOMIterables = require('../internals/dom-iterables');\nvar DOMTokenListPrototype = require('../internals/dom-token-list-prototype');\nvar ArrayIteratorMethods = require('../modules/es.array.iterator');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar ITERATOR = wellKnownSymbol('iterator');\nvar TO_STRING_TAG = wellKnownSymbol('toStringTag');\nvar ArrayValues = ArrayIteratorMethods.values;\n\nvar handlePrototype = function (CollectionPrototype, COLLECTION_NAME) {\n if (CollectionPrototype) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[ITERATOR] !== ArrayValues) try {\n createNonEnumerableProperty(CollectionPrototype, ITERATOR, ArrayValues);\n } catch (error) {\n CollectionPrototype[ITERATOR] = ArrayValues;\n }\n if (!CollectionPrototype[TO_STRING_TAG]) {\n createNonEnumerableProperty(CollectionPrototype, TO_STRING_TAG, COLLECTION_NAME);\n }\n if (DOMIterables[COLLECTION_NAME]) for (var METHOD_NAME in ArrayIteratorMethods) {\n // some Chrome versions have non-configurable methods on DOMTokenList\n if (CollectionPrototype[METHOD_NAME] !== ArrayIteratorMethods[METHOD_NAME]) try {\n createNonEnumerableProperty(CollectionPrototype, METHOD_NAME, ArrayIteratorMethods[METHOD_NAME]);\n } catch (error) {\n CollectionPrototype[METHOD_NAME] = ArrayIteratorMethods[METHOD_NAME];\n }\n }\n }\n};\n\nfor (var COLLECTION_NAME in DOMIterables) {\n handlePrototype(global[COLLECTION_NAME] && global[COLLECTION_NAME].prototype, COLLECTION_NAME);\n}\n\nhandlePrototype(DOMTokenListPrototype, 'DOMTokenList');\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","var global =\n (typeof globalThis !== 'undefined' && globalThis) ||\n (typeof self !== 'undefined' && self) ||\n (typeof global !== 'undefined' && global)\n\nvar support = {\n searchParams: 'URLSearchParams' in global,\n iterable: 'Symbol' in global && 'iterator' in Symbol,\n blob:\n 'FileReader' in global &&\n 'Blob' in global &&\n (function() {\n try {\n new Blob()\n return true\n } catch (e) {\n return false\n }\n })(),\n formData: 'FormData' in global,\n arrayBuffer: 'ArrayBuffer' in global\n}\n\nfunction isDataView(obj) {\n return obj && DataView.prototype.isPrototypeOf(obj)\n}\n\nif (support.arrayBuffer) {\n var viewClasses = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]'\n ]\n\n var isArrayBufferView =\n ArrayBuffer.isView ||\n function(obj) {\n return obj && viewClasses.indexOf(Object.prototype.toString.call(obj)) > -1\n }\n}\n\nfunction normalizeName(name) {\n if (typeof name !== 'string') {\n name = String(name)\n }\n if (/[^a-z0-9\\-#$%&'*+.^_`|~!]/i.test(name) || name === '') {\n throw new TypeError('Invalid character in header field name: \"' + name + '\"')\n }\n return name.toLowerCase()\n}\n\nfunction normalizeValue(value) {\n if (typeof value !== 'string') {\n value = String(value)\n }\n return value\n}\n\n// Build a destructive iterator for the value list\nfunction iteratorFor(items) {\n var iterator = {\n next: function() {\n var value = items.shift()\n return {done: value === undefined, value: value}\n }\n }\n\n if (support.iterable) {\n iterator[Symbol.iterator] = function() {\n return iterator\n }\n }\n\n return iterator\n}\n\nexport function Headers(headers) {\n this.map = {}\n\n if (headers instanceof Headers) {\n headers.forEach(function(value, name) {\n this.append(name, value)\n }, this)\n } else if (Array.isArray(headers)) {\n headers.forEach(function(header) {\n this.append(header[0], header[1])\n }, this)\n } else if (headers) {\n Object.getOwnPropertyNames(headers).forEach(function(name) {\n this.append(name, headers[name])\n }, this)\n }\n}\n\nHeaders.prototype.append = function(name, value) {\n name = normalizeName(name)\n value = normalizeValue(value)\n var oldValue = this.map[name]\n this.map[name] = oldValue ? oldValue + ', ' + value : value\n}\n\nHeaders.prototype['delete'] = function(name) {\n delete this.map[normalizeName(name)]\n}\n\nHeaders.prototype.get = function(name) {\n name = normalizeName(name)\n return this.has(name) ? this.map[name] : null\n}\n\nHeaders.prototype.has = function(name) {\n return this.map.hasOwnProperty(normalizeName(name))\n}\n\nHeaders.prototype.set = function(name, value) {\n this.map[normalizeName(name)] = normalizeValue(value)\n}\n\nHeaders.prototype.forEach = function(callback, thisArg) {\n for (var name in this.map) {\n if (this.map.hasOwnProperty(name)) {\n callback.call(thisArg, this.map[name], name, this)\n }\n }\n}\n\nHeaders.prototype.keys = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push(name)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.values = function() {\n var items = []\n this.forEach(function(value) {\n items.push(value)\n })\n return iteratorFor(items)\n}\n\nHeaders.prototype.entries = function() {\n var items = []\n this.forEach(function(value, name) {\n items.push([name, value])\n })\n return iteratorFor(items)\n}\n\nif (support.iterable) {\n Headers.prototype[Symbol.iterator] = Headers.prototype.entries\n}\n\nfunction consumed(body) {\n if (body.bodyUsed) {\n return Promise.reject(new TypeError('Already read'))\n }\n body.bodyUsed = true\n}\n\nfunction fileReaderReady(reader) {\n return new Promise(function(resolve, reject) {\n reader.onload = function() {\n resolve(reader.result)\n }\n reader.onerror = function() {\n reject(reader.error)\n }\n })\n}\n\nfunction readBlobAsArrayBuffer(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsArrayBuffer(blob)\n return promise\n}\n\nfunction readBlobAsText(blob) {\n var reader = new FileReader()\n var promise = fileReaderReady(reader)\n reader.readAsText(blob)\n return promise\n}\n\nfunction readArrayBufferAsText(buf) {\n var view = new Uint8Array(buf)\n var chars = new Array(view.length)\n\n for (var i = 0; i < view.length; i++) {\n chars[i] = String.fromCharCode(view[i])\n }\n return chars.join('')\n}\n\nfunction bufferClone(buf) {\n if (buf.slice) {\n return buf.slice(0)\n } else {\n var view = new Uint8Array(buf.byteLength)\n view.set(new Uint8Array(buf))\n return view.buffer\n }\n}\n\nfunction Body() {\n this.bodyUsed = false\n\n this._initBody = function(body) {\n /*\n fetch-mock wraps the Response object in an ES6 Proxy to\n provide useful test harness features such as flush. However, on\n ES5 browsers without fetch or Proxy support pollyfills must be used;\n the proxy-pollyfill is unable to proxy an attribute unless it exists\n on the object before the Proxy is created. This change ensures\n Response.bodyUsed exists on the instance, while maintaining the\n semantic of setting Request.bodyUsed in the constructor before\n _initBody is called.\n */\n this.bodyUsed = this.bodyUsed\n this._bodyInit = body\n if (!body) {\n this._bodyText = ''\n } else if (typeof body === 'string') {\n this._bodyText = body\n } else if (support.blob && Blob.prototype.isPrototypeOf(body)) {\n this._bodyBlob = body\n } else if (support.formData && FormData.prototype.isPrototypeOf(body)) {\n this._bodyFormData = body\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this._bodyText = body.toString()\n } else if (support.arrayBuffer && support.blob && isDataView(body)) {\n this._bodyArrayBuffer = bufferClone(body.buffer)\n // IE 10-11 can't handle a DataView body.\n this._bodyInit = new Blob([this._bodyArrayBuffer])\n } else if (support.arrayBuffer && (ArrayBuffer.prototype.isPrototypeOf(body) || isArrayBufferView(body))) {\n this._bodyArrayBuffer = bufferClone(body)\n } else {\n this._bodyText = body = Object.prototype.toString.call(body)\n }\n\n if (!this.headers.get('content-type')) {\n if (typeof body === 'string') {\n this.headers.set('content-type', 'text/plain;charset=UTF-8')\n } else if (this._bodyBlob && this._bodyBlob.type) {\n this.headers.set('content-type', this._bodyBlob.type)\n } else if (support.searchParams && URLSearchParams.prototype.isPrototypeOf(body)) {\n this.headers.set('content-type', 'application/x-www-form-urlencoded;charset=UTF-8')\n }\n }\n }\n\n if (support.blob) {\n this.blob = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return Promise.resolve(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(new Blob([this._bodyArrayBuffer]))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as blob')\n } else {\n return Promise.resolve(new Blob([this._bodyText]))\n }\n }\n\n this.arrayBuffer = function() {\n if (this._bodyArrayBuffer) {\n var isConsumed = consumed(this)\n if (isConsumed) {\n return isConsumed\n }\n if (ArrayBuffer.isView(this._bodyArrayBuffer)) {\n return Promise.resolve(\n this._bodyArrayBuffer.buffer.slice(\n this._bodyArrayBuffer.byteOffset,\n this._bodyArrayBuffer.byteOffset + this._bodyArrayBuffer.byteLength\n )\n )\n } else {\n return Promise.resolve(this._bodyArrayBuffer)\n }\n } else {\n return this.blob().then(readBlobAsArrayBuffer)\n }\n }\n }\n\n this.text = function() {\n var rejected = consumed(this)\n if (rejected) {\n return rejected\n }\n\n if (this._bodyBlob) {\n return readBlobAsText(this._bodyBlob)\n } else if (this._bodyArrayBuffer) {\n return Promise.resolve(readArrayBufferAsText(this._bodyArrayBuffer))\n } else if (this._bodyFormData) {\n throw new Error('could not read FormData body as text')\n } else {\n return Promise.resolve(this._bodyText)\n }\n }\n\n if (support.formData) {\n this.formData = function() {\n return this.text().then(decode)\n }\n }\n\n this.json = function() {\n return this.text().then(JSON.parse)\n }\n\n return this\n}\n\n// HTTP methods whose capitalization should be normalized\nvar methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']\n\nfunction normalizeMethod(method) {\n var upcased = method.toUpperCase()\n return methods.indexOf(upcased) > -1 ? upcased : method\n}\n\nexport function Request(input, options) {\n if (!(this instanceof Request)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n\n options = options || {}\n var body = options.body\n\n if (input instanceof Request) {\n if (input.bodyUsed) {\n throw new TypeError('Already read')\n }\n this.url = input.url\n this.credentials = input.credentials\n if (!options.headers) {\n this.headers = new Headers(input.headers)\n }\n this.method = input.method\n this.mode = input.mode\n this.signal = input.signal\n if (!body && input._bodyInit != null) {\n body = input._bodyInit\n input.bodyUsed = true\n }\n } else {\n this.url = String(input)\n }\n\n this.credentials = options.credentials || this.credentials || 'same-origin'\n if (options.headers || !this.headers) {\n this.headers = new Headers(options.headers)\n }\n this.method = normalizeMethod(options.method || this.method || 'GET')\n this.mode = options.mode || this.mode || null\n this.signal = options.signal || this.signal\n this.referrer = null\n\n if ((this.method === 'GET' || this.method === 'HEAD') && body) {\n throw new TypeError('Body not allowed for GET or HEAD requests')\n }\n this._initBody(body)\n\n if (this.method === 'GET' || this.method === 'HEAD') {\n if (options.cache === 'no-store' || options.cache === 'no-cache') {\n // Search for a '_' parameter in the query string\n var reParamSearch = /([?&])_=[^&]*/\n if (reParamSearch.test(this.url)) {\n // If it already exists then set the value with the current time\n this.url = this.url.replace(reParamSearch, '$1_=' + new Date().getTime())\n } else {\n // Otherwise add a new '_' parameter to the end with the current time\n var reQueryString = /\\?/\n this.url += (reQueryString.test(this.url) ? '&' : '?') + '_=' + new Date().getTime()\n }\n }\n }\n}\n\nRequest.prototype.clone = function() {\n return new Request(this, {body: this._bodyInit})\n}\n\nfunction decode(body) {\n var form = new FormData()\n body\n .trim()\n .split('&')\n .forEach(function(bytes) {\n if (bytes) {\n var split = bytes.split('=')\n var name = split.shift().replace(/\\+/g, ' ')\n var value = split.join('=').replace(/\\+/g, ' ')\n form.append(decodeURIComponent(name), decodeURIComponent(value))\n }\n })\n return form\n}\n\nfunction parseHeaders(rawHeaders) {\n var headers = new Headers()\n // Replace instances of \\r\\n and \\n followed by at least one space or horizontal tab with a space\n // https://tools.ietf.org/html/rfc7230#section-3.2\n var preProcessedHeaders = rawHeaders.replace(/\\r?\\n[\\t ]+/g, ' ')\n // Avoiding split via regex to work around a common IE11 bug with the core-js 3.6.0 regex polyfill\n // https://github.com/github/fetch/issues/748\n // https://github.com/zloirock/core-js/issues/751\n preProcessedHeaders\n .split('\\r')\n .map(function(header) {\n return header.indexOf('\\n') === 0 ? header.substr(1, header.length) : header\n })\n .forEach(function(line) {\n var parts = line.split(':')\n var key = parts.shift().trim()\n if (key) {\n var value = parts.join(':').trim()\n headers.append(key, value)\n }\n })\n return headers\n}\n\nBody.call(Request.prototype)\n\nexport function Response(bodyInit, options) {\n if (!(this instanceof Response)) {\n throw new TypeError('Please use the \"new\" operator, this DOM object constructor cannot be called as a function.')\n }\n if (!options) {\n options = {}\n }\n\n this.type = 'default'\n this.status = options.status === undefined ? 200 : options.status\n this.ok = this.status >= 200 && this.status < 300\n this.statusText = options.statusText === undefined ? '' : '' + options.statusText\n this.headers = new Headers(options.headers)\n this.url = options.url || ''\n this._initBody(bodyInit)\n}\n\nBody.call(Response.prototype)\n\nResponse.prototype.clone = function() {\n return new Response(this._bodyInit, {\n status: this.status,\n statusText: this.statusText,\n headers: new Headers(this.headers),\n url: this.url\n })\n}\n\nResponse.error = function() {\n var response = new Response(null, {status: 0, statusText: ''})\n response.type = 'error'\n return response\n}\n\nvar redirectStatuses = [301, 302, 303, 307, 308]\n\nResponse.redirect = function(url, status) {\n if (redirectStatuses.indexOf(status) === -1) {\n throw new RangeError('Invalid status code')\n }\n\n return new Response(null, {status: status, headers: {location: url}})\n}\n\nexport var DOMException = global.DOMException\ntry {\n new DOMException()\n} catch (err) {\n DOMException = function(message, name) {\n this.message = message\n this.name = name\n var error = Error(message)\n this.stack = error.stack\n }\n DOMException.prototype = Object.create(Error.prototype)\n DOMException.prototype.constructor = DOMException\n}\n\nexport function fetch(input, init) {\n return new Promise(function(resolve, reject) {\n var request = new Request(input, init)\n\n if (request.signal && request.signal.aborted) {\n return reject(new DOMException('Aborted', 'AbortError'))\n }\n\n var xhr = new XMLHttpRequest()\n\n function abortXhr() {\n xhr.abort()\n }\n\n xhr.onload = function() {\n var options = {\n status: xhr.status,\n statusText: xhr.statusText,\n headers: parseHeaders(xhr.getAllResponseHeaders() || '')\n }\n options.url = 'responseURL' in xhr ? xhr.responseURL : options.headers.get('X-Request-URL')\n var body = 'response' in xhr ? xhr.response : xhr.responseText\n setTimeout(function() {\n resolve(new Response(body, options))\n }, 0)\n }\n\n xhr.onerror = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.ontimeout = function() {\n setTimeout(function() {\n reject(new TypeError('Network request failed'))\n }, 0)\n }\n\n xhr.onabort = function() {\n setTimeout(function() {\n reject(new DOMException('Aborted', 'AbortError'))\n }, 0)\n }\n\n function fixUrl(url) {\n try {\n return url === '' && global.location.href ? global.location.href : url\n } catch (e) {\n return url\n }\n }\n\n xhr.open(request.method, fixUrl(request.url), true)\n\n if (request.credentials === 'include') {\n xhr.withCredentials = true\n } else if (request.credentials === 'omit') {\n xhr.withCredentials = false\n }\n\n if ('responseType' in xhr) {\n if (support.blob) {\n xhr.responseType = 'blob'\n } else if (\n support.arrayBuffer &&\n request.headers.get('Content-Type') &&\n request.headers.get('Content-Type').indexOf('application/octet-stream') !== -1\n ) {\n xhr.responseType = 'arraybuffer'\n }\n }\n\n if (init && typeof init.headers === 'object' && !(init.headers instanceof Headers)) {\n Object.getOwnPropertyNames(init.headers).forEach(function(name) {\n xhr.setRequestHeader(name, normalizeValue(init.headers[name]))\n })\n } else {\n request.headers.forEach(function(value, name) {\n xhr.setRequestHeader(name, value)\n })\n }\n\n if (request.signal) {\n request.signal.addEventListener('abort', abortXhr)\n\n xhr.onreadystatechange = function() {\n // DONE (success or failure)\n if (xhr.readyState === 4) {\n request.signal.removeEventListener('abort', abortXhr)\n }\n }\n }\n\n xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)\n })\n}\n\nfetch.polyfill = true\n\nif (!global.fetch) {\n global.fetch = fetch\n global.Headers = Headers\n global.Request = Request\n global.Response = Response\n}\n","export function prettyByte(byte) {\n return \"\".concat(byte < 0 ? \"-\" : \"\", \"0x\").concat(Math.abs(byte).toString(16).padStart(2, \"0\"));\n}\n//# sourceMappingURL=prettyByte.mjs.map","/**\n * ExtData is used to handle Extension Types that are not registered to ExtensionCodec.\n */\nvar ExtData = /** @class */ (function () {\n function ExtData(type, data) {\n this.type = type;\n this.data = data;\n }\n return ExtData;\n}());\nexport { ExtData };\n//# sourceMappingURL=ExtData.mjs.map","var __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar DecodeError = /** @class */ (function (_super) {\n __extends(DecodeError, _super);\n function DecodeError(message) {\n var _this = _super.call(this, message) || this;\n // fix the prototype chain in a cross-platform way\n var proto = Object.create(DecodeError.prototype);\n Object.setPrototypeOf(_this, proto);\n Object.defineProperty(_this, \"name\", {\n configurable: true,\n enumerable: false,\n value: DecodeError.name,\n });\n return _this;\n }\n return DecodeError;\n}(Error));\nexport { DecodeError };\n//# sourceMappingURL=DecodeError.mjs.map","// Integer Utility\nexport var UINT32_MAX = 4294967295;\n// DataView extension to handle int64 / uint64,\n// where the actual range is 53-bits integer (a.k.a. safe integer)\nexport function setUint64(view, offset, value) {\n var high = value / 4294967296;\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function setInt64(view, offset, value) {\n var high = Math.floor(value / 4294967296);\n var low = value; // high bits are truncated by DataView\n view.setUint32(offset, high);\n view.setUint32(offset + 4, low);\n}\nexport function getInt64(view, offset) {\n var high = view.getInt32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\nexport function getUint64(view, offset) {\n var high = view.getUint32(offset);\n var low = view.getUint32(offset + 4);\n return high * 4294967296 + low;\n}\n//# sourceMappingURL=int.mjs.map","// https://github.com/msgpack/msgpack/blob/master/spec.md#timestamp-extension-type\nimport { DecodeError } from \"./DecodeError.mjs\";\nimport { getInt64, setInt64 } from \"./utils/int.mjs\";\nexport var EXT_TIMESTAMP = -1;\nvar TIMESTAMP32_MAX_SEC = 0x100000000 - 1; // 32-bit unsigned int\nvar TIMESTAMP64_MAX_SEC = 0x400000000 - 1; // 34-bit unsigned int\nexport function encodeTimeSpecToTimestamp(_a) {\n var sec = _a.sec, nsec = _a.nsec;\n if (sec >= 0 && nsec >= 0 && sec <= TIMESTAMP64_MAX_SEC) {\n // Here sec >= 0 && nsec >= 0\n if (nsec === 0 && sec <= TIMESTAMP32_MAX_SEC) {\n // timestamp 32 = { sec32 (unsigned) }\n var rv = new Uint8Array(4);\n var view = new DataView(rv.buffer);\n view.setUint32(0, sec);\n return rv;\n }\n else {\n // timestamp 64 = { nsec30 (unsigned), sec34 (unsigned) }\n var secHigh = sec / 0x100000000;\n var secLow = sec & 0xffffffff;\n var rv = new Uint8Array(8);\n var view = new DataView(rv.buffer);\n // nsec30 | secHigh2\n view.setUint32(0, (nsec << 2) | (secHigh & 0x3));\n // secLow32\n view.setUint32(4, secLow);\n return rv;\n }\n }\n else {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var rv = new Uint8Array(12);\n var view = new DataView(rv.buffer);\n view.setUint32(0, nsec);\n setInt64(view, 4, sec);\n return rv;\n }\n}\nexport function encodeDateToTimeSpec(date) {\n var msec = date.getTime();\n var sec = Math.floor(msec / 1e3);\n var nsec = (msec - sec * 1e3) * 1e6;\n // Normalizes { sec, nsec } to ensure nsec is unsigned.\n var nsecInSec = Math.floor(nsec / 1e9);\n return {\n sec: sec + nsecInSec,\n nsec: nsec - nsecInSec * 1e9,\n };\n}\nexport function encodeTimestampExtension(object) {\n if (object instanceof Date) {\n var timeSpec = encodeDateToTimeSpec(object);\n return encodeTimeSpecToTimestamp(timeSpec);\n }\n else {\n return null;\n }\n}\nexport function decodeTimestampToTimeSpec(data) {\n var view = new DataView(data.buffer, data.byteOffset, data.byteLength);\n // data may be 32, 64, or 96 bits\n switch (data.byteLength) {\n case 4: {\n // timestamp 32 = { sec32 }\n var sec = view.getUint32(0);\n var nsec = 0;\n return { sec: sec, nsec: nsec };\n }\n case 8: {\n // timestamp 64 = { nsec30, sec34 }\n var nsec30AndSecHigh2 = view.getUint32(0);\n var secLow32 = view.getUint32(4);\n var sec = (nsec30AndSecHigh2 & 0x3) * 0x100000000 + secLow32;\n var nsec = nsec30AndSecHigh2 >>> 2;\n return { sec: sec, nsec: nsec };\n }\n case 12: {\n // timestamp 96 = { nsec32 (unsigned), sec64 (signed) }\n var sec = getInt64(view, 4);\n var nsec = view.getUint32(0);\n return { sec: sec, nsec: nsec };\n }\n default:\n throw new DecodeError(\"Unrecognized data size for timestamp (expected 4, 8, or 12): \".concat(data.length));\n }\n}\nexport function decodeTimestampExtension(data) {\n var timeSpec = decodeTimestampToTimeSpec(data);\n return new Date(timeSpec.sec * 1e3 + timeSpec.nsec / 1e6);\n}\nexport var timestampExtension = {\n type: EXT_TIMESTAMP,\n encode: encodeTimestampExtension,\n decode: decodeTimestampExtension,\n};\n//# sourceMappingURL=timestamp.mjs.map","var _a, _b, _c;\n/* eslint-disable @typescript-eslint/no-unnecessary-condition */\nimport { UINT32_MAX } from \"./int.mjs\";\nvar TEXT_ENCODING_AVAILABLE = (typeof process === \"undefined\" || ((_a = process === null || process === void 0 ? void 0 : process.env) === null || _a === void 0 ? void 0 : _a[\"TEXT_ENCODING\"]) !== \"never\") &&\n typeof TextEncoder !== \"undefined\" &&\n typeof TextDecoder !== \"undefined\";\nexport function utf8Count(str) {\n var strLength = str.length;\n var byteLength = 0;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n byteLength++;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n byteLength += 2;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n byteLength += 3;\n }\n else {\n // 4-byte\n byteLength += 4;\n }\n }\n }\n return byteLength;\n}\nexport function utf8EncodeJs(str, output, outputOffset) {\n var strLength = str.length;\n var offset = outputOffset;\n var pos = 0;\n while (pos < strLength) {\n var value = str.charCodeAt(pos++);\n if ((value & 0xffffff80) === 0) {\n // 1-byte\n output[offset++] = value;\n continue;\n }\n else if ((value & 0xfffff800) === 0) {\n // 2-bytes\n output[offset++] = ((value >> 6) & 0x1f) | 0xc0;\n }\n else {\n // handle surrogate pair\n if (value >= 0xd800 && value <= 0xdbff) {\n // high surrogate\n if (pos < strLength) {\n var extra = str.charCodeAt(pos);\n if ((extra & 0xfc00) === 0xdc00) {\n ++pos;\n value = ((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000;\n }\n }\n }\n if ((value & 0xffff0000) === 0) {\n // 3-byte\n output[offset++] = ((value >> 12) & 0x0f) | 0xe0;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n else {\n // 4-byte\n output[offset++] = ((value >> 18) & 0x07) | 0xf0;\n output[offset++] = ((value >> 12) & 0x3f) | 0x80;\n output[offset++] = ((value >> 6) & 0x3f) | 0x80;\n }\n }\n output[offset++] = (value & 0x3f) | 0x80;\n }\n}\nvar sharedTextEncoder = TEXT_ENCODING_AVAILABLE ? new TextEncoder() : undefined;\nexport var TEXT_ENCODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && ((_b = process === null || process === void 0 ? void 0 : process.env) === null || _b === void 0 ? void 0 : _b[\"TEXT_ENCODING\"]) !== \"force\"\n ? 200\n : 0;\nfunction utf8EncodeTEencode(str, output, outputOffset) {\n output.set(sharedTextEncoder.encode(str), outputOffset);\n}\nfunction utf8EncodeTEencodeInto(str, output, outputOffset) {\n sharedTextEncoder.encodeInto(str, output.subarray(outputOffset));\n}\nexport var utf8EncodeTE = (sharedTextEncoder === null || sharedTextEncoder === void 0 ? void 0 : sharedTextEncoder.encodeInto) ? utf8EncodeTEencodeInto : utf8EncodeTEencode;\nvar CHUNK_SIZE = 4096;\nexport function utf8DecodeJs(bytes, inputOffset, byteLength) {\n var offset = inputOffset;\n var end = offset + byteLength;\n var units = [];\n var result = \"\";\n while (offset < end) {\n var byte1 = bytes[offset++];\n if ((byte1 & 0x80) === 0) {\n // 1 byte\n units.push(byte1);\n }\n else if ((byte1 & 0xe0) === 0xc0) {\n // 2 bytes\n var byte2 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 6) | byte2);\n }\n else if ((byte1 & 0xf0) === 0xe0) {\n // 3 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n units.push(((byte1 & 0x1f) << 12) | (byte2 << 6) | byte3);\n }\n else if ((byte1 & 0xf8) === 0xf0) {\n // 4 bytes\n var byte2 = bytes[offset++] & 0x3f;\n var byte3 = bytes[offset++] & 0x3f;\n var byte4 = bytes[offset++] & 0x3f;\n var unit = ((byte1 & 0x07) << 0x12) | (byte2 << 0x0c) | (byte3 << 0x06) | byte4;\n if (unit > 0xffff) {\n unit -= 0x10000;\n units.push(((unit >>> 10) & 0x3ff) | 0xd800);\n unit = 0xdc00 | (unit & 0x3ff);\n }\n units.push(unit);\n }\n else {\n units.push(byte1);\n }\n if (units.length >= CHUNK_SIZE) {\n result += String.fromCharCode.apply(String, units);\n units.length = 0;\n }\n }\n if (units.length > 0) {\n result += String.fromCharCode.apply(String, units);\n }\n return result;\n}\nvar sharedTextDecoder = TEXT_ENCODING_AVAILABLE ? new TextDecoder() : null;\nexport var TEXT_DECODER_THRESHOLD = !TEXT_ENCODING_AVAILABLE\n ? UINT32_MAX\n : typeof process !== \"undefined\" && ((_c = process === null || process === void 0 ? void 0 : process.env) === null || _c === void 0 ? void 0 : _c[\"TEXT_DECODER\"]) !== \"force\"\n ? 200\n : 0;\nexport function utf8DecodeTD(bytes, inputOffset, byteLength) {\n var stringBytes = bytes.subarray(inputOffset, inputOffset + byteLength);\n return sharedTextDecoder.decode(stringBytes);\n}\n//# sourceMappingURL=utf8.mjs.map","// ExtensionCodec to handle MessagePack extensions\nimport { ExtData } from \"./ExtData.mjs\";\nimport { timestampExtension } from \"./timestamp.mjs\";\nvar ExtensionCodec = /** @class */ (function () {\n function ExtensionCodec() {\n // built-in extensions\n this.builtInEncoders = [];\n this.builtInDecoders = [];\n // custom extensions\n this.encoders = [];\n this.decoders = [];\n this.register(timestampExtension);\n }\n ExtensionCodec.prototype.register = function (_a) {\n var type = _a.type, encode = _a.encode, decode = _a.decode;\n if (type >= 0) {\n // custom extensions\n this.encoders[type] = encode;\n this.decoders[type] = decode;\n }\n else {\n // built-in extensions\n var index = 1 + type;\n this.builtInEncoders[index] = encode;\n this.builtInDecoders[index] = decode;\n }\n };\n ExtensionCodec.prototype.tryToEncode = function (object, context) {\n // built-in extensions\n for (var i = 0; i < this.builtInEncoders.length; i++) {\n var encodeExt = this.builtInEncoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = -1 - i;\n return new ExtData(type, data);\n }\n }\n }\n // custom extensions\n for (var i = 0; i < this.encoders.length; i++) {\n var encodeExt = this.encoders[i];\n if (encodeExt != null) {\n var data = encodeExt(object, context);\n if (data != null) {\n var type = i;\n return new ExtData(type, data);\n }\n }\n }\n if (object instanceof ExtData) {\n // to keep ExtData as is\n return object;\n }\n return null;\n };\n ExtensionCodec.prototype.decode = function (data, type, context) {\n var decodeExt = type < 0 ? this.builtInDecoders[-1 - type] : this.decoders[type];\n if (decodeExt) {\n return decodeExt(data, type, context);\n }\n else {\n // decode() does not fail, returns ExtData instead.\n return new ExtData(type, data);\n }\n };\n ExtensionCodec.defaultCodec = new ExtensionCodec();\n return ExtensionCodec;\n}());\nexport { ExtensionCodec };\n//# sourceMappingURL=ExtensionCodec.mjs.map","export function ensureUint8Array(buffer) {\n if (buffer instanceof Uint8Array) {\n return buffer;\n }\n else if (ArrayBuffer.isView(buffer)) {\n return new Uint8Array(buffer.buffer, buffer.byteOffset, buffer.byteLength);\n }\n else if (buffer instanceof ArrayBuffer) {\n return new Uint8Array(buffer);\n }\n else {\n // ArrayLike\n return Uint8Array.from(buffer);\n }\n}\nexport function createDataView(buffer) {\n if (buffer instanceof ArrayBuffer) {\n return new DataView(buffer);\n }\n var bufferView = ensureUint8Array(buffer);\n return new DataView(bufferView.buffer, bufferView.byteOffset, bufferView.byteLength);\n}\n//# sourceMappingURL=typedArrays.mjs.map","import { utf8DecodeJs } from \"./utils/utf8.mjs\";\nvar DEFAULT_MAX_KEY_LENGTH = 16;\nvar DEFAULT_MAX_LENGTH_PER_KEY = 16;\nvar CachedKeyDecoder = /** @class */ (function () {\n function CachedKeyDecoder(maxKeyLength, maxLengthPerKey) {\n if (maxKeyLength === void 0) { maxKeyLength = DEFAULT_MAX_KEY_LENGTH; }\n if (maxLengthPerKey === void 0) { maxLengthPerKey = DEFAULT_MAX_LENGTH_PER_KEY; }\n this.maxKeyLength = maxKeyLength;\n this.maxLengthPerKey = maxLengthPerKey;\n this.hit = 0;\n this.miss = 0;\n // avoid `new Array(N)`, which makes a sparse array,\n // because a sparse array is typically slower than a non-sparse array.\n this.caches = [];\n for (var i = 0; i < this.maxKeyLength; i++) {\n this.caches.push([]);\n }\n }\n CachedKeyDecoder.prototype.canBeCached = function (byteLength) {\n return byteLength > 0 && byteLength <= this.maxKeyLength;\n };\n CachedKeyDecoder.prototype.find = function (bytes, inputOffset, byteLength) {\n var records = this.caches[byteLength - 1];\n FIND_CHUNK: for (var _i = 0, records_1 = records; _i < records_1.length; _i++) {\n var record = records_1[_i];\n var recordBytes = record.bytes;\n for (var j = 0; j < byteLength; j++) {\n if (recordBytes[j] !== bytes[inputOffset + j]) {\n continue FIND_CHUNK;\n }\n }\n return record.str;\n }\n return null;\n };\n CachedKeyDecoder.prototype.store = function (bytes, value) {\n var records = this.caches[bytes.length - 1];\n var record = { bytes: bytes, str: value };\n if (records.length >= this.maxLengthPerKey) {\n // `records` are full!\n // Set `record` to an arbitrary position.\n records[(Math.random() * records.length) | 0] = record;\n }\n else {\n records.push(record);\n }\n };\n CachedKeyDecoder.prototype.decode = function (bytes, inputOffset, byteLength) {\n var cachedValue = this.find(bytes, inputOffset, byteLength);\n if (cachedValue != null) {\n this.hit++;\n return cachedValue;\n }\n this.miss++;\n var str = utf8DecodeJs(bytes, inputOffset, byteLength);\n // Ensure to copy a slice of bytes because the byte may be NodeJS Buffer and Buffer#slice() returns a reference to its internal ArrayBuffer.\n var slicedCopyOfBytes = Uint8Array.prototype.slice.call(bytes, inputOffset, inputOffset + byteLength);\n this.store(slicedCopyOfBytes, str);\n return str;\n };\n return CachedKeyDecoder;\n}());\nexport { CachedKeyDecoder };\n//# sourceMappingURL=CachedKeyDecoder.mjs.map","var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __asyncValues = (this && this.__asyncValues) || function (o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n};\nvar __await = (this && this.__await) || function (v) { return this instanceof __await ? (this.v = v, this) : new __await(v); }\nvar __asyncGenerator = (this && this.__asyncGenerator) || function (thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n};\nimport { prettyByte } from \"./utils/prettyByte.mjs\";\nimport { ExtensionCodec } from \"./ExtensionCodec.mjs\";\nimport { getInt64, getUint64, UINT32_MAX } from \"./utils/int.mjs\";\nimport { utf8DecodeJs, TEXT_DECODER_THRESHOLD, utf8DecodeTD } from \"./utils/utf8.mjs\";\nimport { createDataView, ensureUint8Array } from \"./utils/typedArrays.mjs\";\nimport { CachedKeyDecoder } from \"./CachedKeyDecoder.mjs\";\nimport { DecodeError } from \"./DecodeError.mjs\";\nvar isValidMapKeyType = function (key) {\n var keyType = typeof key;\n return keyType === \"string\" || keyType === \"number\";\n};\nvar HEAD_BYTE_REQUIRED = -1;\nvar EMPTY_VIEW = new DataView(new ArrayBuffer(0));\nvar EMPTY_BYTES = new Uint8Array(EMPTY_VIEW.buffer);\n// IE11: Hack to support IE11.\n// IE11: Drop this hack and just use RangeError when IE11 is obsolete.\nexport var DataViewIndexOutOfBoundsError = (function () {\n try {\n // IE11: The spec says it should throw RangeError,\n // IE11: but in IE11 it throws TypeError.\n EMPTY_VIEW.getInt8(0);\n }\n catch (e) {\n return e.constructor;\n }\n throw new Error(\"never reached\");\n})();\nvar MORE_DATA = new DataViewIndexOutOfBoundsError(\"Insufficient data\");\nvar sharedCachedKeyDecoder = new CachedKeyDecoder();\nvar Decoder = /** @class */ (function () {\n function Decoder(extensionCodec, context, maxStrLength, maxBinLength, maxArrayLength, maxMapLength, maxExtLength, keyDecoder) {\n if (extensionCodec === void 0) { extensionCodec = ExtensionCodec.defaultCodec; }\n if (context === void 0) { context = undefined; }\n if (maxStrLength === void 0) { maxStrLength = UINT32_MAX; }\n if (maxBinLength === void 0) { maxBinLength = UINT32_MAX; }\n if (maxArrayLength === void 0) { maxArrayLength = UINT32_MAX; }\n if (maxMapLength === void 0) { maxMapLength = UINT32_MAX; }\n if (maxExtLength === void 0) { maxExtLength = UINT32_MAX; }\n if (keyDecoder === void 0) { keyDecoder = sharedCachedKeyDecoder; }\n this.extensionCodec = extensionCodec;\n this.context = context;\n this.maxStrLength = maxStrLength;\n this.maxBinLength = maxBinLength;\n this.maxArrayLength = maxArrayLength;\n this.maxMapLength = maxMapLength;\n this.maxExtLength = maxExtLength;\n this.keyDecoder = keyDecoder;\n this.totalPos = 0;\n this.pos = 0;\n this.view = EMPTY_VIEW;\n this.bytes = EMPTY_BYTES;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack = [];\n }\n Decoder.prototype.reinitializeState = function () {\n this.totalPos = 0;\n this.headByte = HEAD_BYTE_REQUIRED;\n this.stack.length = 0;\n // view, bytes, and pos will be re-initialized in setBuffer()\n };\n Decoder.prototype.setBuffer = function (buffer) {\n this.bytes = ensureUint8Array(buffer);\n this.view = createDataView(this.bytes);\n this.pos = 0;\n };\n Decoder.prototype.appendBuffer = function (buffer) {\n if (this.headByte === HEAD_BYTE_REQUIRED && !this.hasRemaining(1)) {\n this.setBuffer(buffer);\n }\n else {\n var remainingData = this.bytes.subarray(this.pos);\n var newData = ensureUint8Array(buffer);\n // concat remainingData + newData\n var newBuffer = new Uint8Array(remainingData.length + newData.length);\n newBuffer.set(remainingData);\n newBuffer.set(newData, remainingData.length);\n this.setBuffer(newBuffer);\n }\n };\n Decoder.prototype.hasRemaining = function (size) {\n return this.view.byteLength - this.pos >= size;\n };\n Decoder.prototype.createExtraByteError = function (posToShow) {\n var _a = this, view = _a.view, pos = _a.pos;\n return new RangeError(\"Extra \".concat(view.byteLength - pos, \" of \").concat(view.byteLength, \" byte(s) found at buffer[\").concat(posToShow, \"]\"));\n };\n /**\n * @throws {@link DecodeError}\n * @throws {@link RangeError}\n */\n Decoder.prototype.decode = function (buffer) {\n this.reinitializeState();\n this.setBuffer(buffer);\n var object = this.doDecodeSync();\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.pos);\n }\n return object;\n };\n Decoder.prototype.decodeMulti = function (buffer) {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n this.reinitializeState();\n this.setBuffer(buffer);\n _a.label = 1;\n case 1:\n if (!this.hasRemaining(1)) return [3 /*break*/, 3];\n return [4 /*yield*/, this.doDecodeSync()];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n };\n Decoder.prototype.decodeAsync = function (stream) {\n var stream_1, stream_1_1;\n var e_1, _a;\n return __awaiter(this, void 0, void 0, function () {\n var decoded, object, buffer, e_1_1, _b, headByte, pos, totalPos;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n decoded = false;\n _c.label = 1;\n case 1:\n _c.trys.push([1, 6, 7, 12]);\n stream_1 = __asyncValues(stream);\n _c.label = 2;\n case 2: return [4 /*yield*/, stream_1.next()];\n case 3:\n if (!(stream_1_1 = _c.sent(), !stream_1_1.done)) return [3 /*break*/, 5];\n buffer = stream_1_1.value;\n if (decoded) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n try {\n object = this.doDecodeSync();\n decoded = true;\n }\n catch (e) {\n if (!(e instanceof DataViewIndexOutOfBoundsError)) {\n throw e; // rethrow\n }\n // fallthrough\n }\n this.totalPos += this.pos;\n _c.label = 4;\n case 4: return [3 /*break*/, 2];\n case 5: return [3 /*break*/, 12];\n case 6:\n e_1_1 = _c.sent();\n e_1 = { error: e_1_1 };\n return [3 /*break*/, 12];\n case 7:\n _c.trys.push([7, , 10, 11]);\n if (!(stream_1_1 && !stream_1_1.done && (_a = stream_1.return))) return [3 /*break*/, 9];\n return [4 /*yield*/, _a.call(stream_1)];\n case 8:\n _c.sent();\n _c.label = 9;\n case 9: return [3 /*break*/, 11];\n case 10:\n if (e_1) throw e_1.error;\n return [7 /*endfinally*/];\n case 11: return [7 /*endfinally*/];\n case 12:\n if (decoded) {\n if (this.hasRemaining(1)) {\n throw this.createExtraByteError(this.totalPos);\n }\n return [2 /*return*/, object];\n }\n _b = this, headByte = _b.headByte, pos = _b.pos, totalPos = _b.totalPos;\n throw new RangeError(\"Insufficient data in parsing \".concat(prettyByte(headByte), \" at \").concat(totalPos, \" (\").concat(pos, \" in the current buffer)\"));\n }\n });\n });\n };\n Decoder.prototype.decodeArrayStream = function (stream) {\n return this.decodeMultiAsync(stream, true);\n };\n Decoder.prototype.decodeStream = function (stream) {\n return this.decodeMultiAsync(stream, false);\n };\n Decoder.prototype.decodeMultiAsync = function (stream, isArray) {\n return __asyncGenerator(this, arguments, function decodeMultiAsync_1() {\n var isArrayHeaderRequired, arrayItemsLeft, stream_2, stream_2_1, buffer, e_2, e_3_1;\n var e_3, _a;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n isArrayHeaderRequired = isArray;\n arrayItemsLeft = -1;\n _b.label = 1;\n case 1:\n _b.trys.push([1, 13, 14, 19]);\n stream_2 = __asyncValues(stream);\n _b.label = 2;\n case 2: return [4 /*yield*/, __await(stream_2.next())];\n case 3:\n if (!(stream_2_1 = _b.sent(), !stream_2_1.done)) return [3 /*break*/, 12];\n buffer = stream_2_1.value;\n if (isArray && arrayItemsLeft === 0) {\n throw this.createExtraByteError(this.totalPos);\n }\n this.appendBuffer(buffer);\n if (isArrayHeaderRequired) {\n arrayItemsLeft = this.readArraySize();\n isArrayHeaderRequired = false;\n this.complete();\n }\n _b.label = 4;\n case 4:\n _b.trys.push([4, 9, , 10]);\n _b.label = 5;\n case 5:\n if (!true) return [3 /*break*/, 8];\n return [4 /*yield*/, __await(this.doDecodeSync())];\n case 6: return [4 /*yield*/, _b.sent()];\n case 7:\n _b.sent();\n if (--arrayItemsLeft === 0) {\n return [3 /*break*/, 8];\n }\n return [3 /*break*/, 5];\n case 8: return [3 /*break*/, 10];\n case 9:\n e_2 = _b.sent();\n if (!(e_2 instanceof DataViewIndexOutOfBoundsError)) {\n throw e_2; // rethrow\n }\n return [3 /*break*/, 10];\n case 10:\n this.totalPos += this.pos;\n _b.label = 11;\n case 11: return [3 /*break*/, 2];\n case 12: return [3 /*break*/, 19];\n case 13:\n e_3_1 = _b.sent();\n e_3 = { error: e_3_1 };\n return [3 /*break*/, 19];\n case 14:\n _b.trys.push([14, , 17, 18]);\n if (!(stream_2_1 && !stream_2_1.done && (_a = stream_2.return))) return [3 /*break*/, 16];\n return [4 /*yield*/, __await(_a.call(stream_2))];\n case 15:\n _b.sent();\n _b.label = 16;\n case 16: return [3 /*break*/, 18];\n case 17:\n if (e_3) throw e_3.error;\n return [7 /*endfinally*/];\n case 18: return [7 /*endfinally*/];\n case 19: return [2 /*return*/];\n }\n });\n });\n };\n Decoder.prototype.doDecodeSync = function () {\n DECODE: while (true) {\n var headByte = this.readHeadByte();\n var object = void 0;\n if (headByte >= 0xe0) {\n // negative fixint (111x xxxx) 0xe0 - 0xff\n object = headByte - 0x100;\n }\n else if (headByte < 0xc0) {\n if (headByte < 0x80) {\n // positive fixint (0xxx xxxx) 0x00 - 0x7f\n object = headByte;\n }\n else if (headByte < 0x90) {\n // fixmap (1000 xxxx) 0x80 - 0x8f\n var size = headByte - 0x80;\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte < 0xa0) {\n // fixarray (1001 xxxx) 0x90 - 0x9f\n var size = headByte - 0x90;\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else {\n // fixstr (101x xxxx) 0xa0 - 0xbf\n var byteLength = headByte - 0xa0;\n object = this.decodeUtf8String(byteLength, 0);\n }\n }\n else if (headByte === 0xc0) {\n // nil\n object = null;\n }\n else if (headByte === 0xc2) {\n // false\n object = false;\n }\n else if (headByte === 0xc3) {\n // true\n object = true;\n }\n else if (headByte === 0xca) {\n // float 32\n object = this.readF32();\n }\n else if (headByte === 0xcb) {\n // float 64\n object = this.readF64();\n }\n else if (headByte === 0xcc) {\n // uint 8\n object = this.readU8();\n }\n else if (headByte === 0xcd) {\n // uint 16\n object = this.readU16();\n }\n else if (headByte === 0xce) {\n // uint 32\n object = this.readU32();\n }\n else if (headByte === 0xcf) {\n // uint 64\n object = this.readU64();\n }\n else if (headByte === 0xd0) {\n // int 8\n object = this.readI8();\n }\n else if (headByte === 0xd1) {\n // int 16\n object = this.readI16();\n }\n else if (headByte === 0xd2) {\n // int 32\n object = this.readI32();\n }\n else if (headByte === 0xd3) {\n // int 64\n object = this.readI64();\n }\n else if (headByte === 0xd9) {\n // str 8\n var byteLength = this.lookU8();\n object = this.decodeUtf8String(byteLength, 1);\n }\n else if (headByte === 0xda) {\n // str 16\n var byteLength = this.lookU16();\n object = this.decodeUtf8String(byteLength, 2);\n }\n else if (headByte === 0xdb) {\n // str 32\n var byteLength = this.lookU32();\n object = this.decodeUtf8String(byteLength, 4);\n }\n else if (headByte === 0xdc) {\n // array 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xdd) {\n // array 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushArrayState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = [];\n }\n }\n else if (headByte === 0xde) {\n // map 16\n var size = this.readU16();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xdf) {\n // map 32\n var size = this.readU32();\n if (size !== 0) {\n this.pushMapState(size);\n this.complete();\n continue DECODE;\n }\n else {\n object = {};\n }\n }\n else if (headByte === 0xc4) {\n // bin 8\n var size = this.lookU8();\n object = this.decodeBinary(size, 1);\n }\n else if (headByte === 0xc5) {\n // bin 16\n var size = this.lookU16();\n object = this.decodeBinary(size, 2);\n }\n else if (headByte === 0xc6) {\n // bin 32\n var size = this.lookU32();\n object = this.decodeBinary(size, 4);\n }\n else if (headByte === 0xd4) {\n // fixext 1\n object = this.decodeExtension(1, 0);\n }\n else if (headByte === 0xd5) {\n // fixext 2\n object = this.decodeExtension(2, 0);\n }\n else if (headByte === 0xd6) {\n // fixext 4\n object = this.decodeExtension(4, 0);\n }\n else if (headByte === 0xd7) {\n // fixext 8\n object = this.decodeExtension(8, 0);\n }\n else if (headByte === 0xd8) {\n // fixext 16\n object = this.decodeExtension(16, 0);\n }\n else if (headByte === 0xc7) {\n // ext 8\n var size = this.lookU8();\n object = this.decodeExtension(size, 1);\n }\n else if (headByte === 0xc8) {\n // ext 16\n var size = this.lookU16();\n object = this.decodeExtension(size, 2);\n }\n else if (headByte === 0xc9) {\n // ext 32\n var size = this.lookU32();\n object = this.decodeExtension(size, 4);\n }\n else {\n throw new DecodeError(\"Unrecognized type byte: \".concat(prettyByte(headByte)));\n }\n this.complete();\n var stack = this.stack;\n while (stack.length > 0) {\n // arrays and maps\n var state = stack[stack.length - 1];\n if (state.type === 0 /* State.ARRAY */) {\n state.array[state.position] = object;\n state.position++;\n if (state.position === state.size) {\n stack.pop();\n object = state.array;\n }\n else {\n continue DECODE;\n }\n }\n else if (state.type === 1 /* State.MAP_KEY */) {\n if (!isValidMapKeyType(object)) {\n throw new DecodeError(\"The type of key must be string or number but \" + typeof object);\n }\n if (object === \"__proto__\") {\n throw new DecodeError(\"The key __proto__ is not allowed\");\n }\n state.key = object;\n state.type = 2 /* State.MAP_VALUE */;\n continue DECODE;\n }\n else {\n // it must be `state.type === State.MAP_VALUE` here\n state.map[state.key] = object;\n state.readCount++;\n if (state.readCount === state.size) {\n stack.pop();\n object = state.map;\n }\n else {\n state.key = null;\n state.type = 1 /* State.MAP_KEY */;\n continue DECODE;\n }\n }\n }\n return object;\n }\n };\n Decoder.prototype.readHeadByte = function () {\n if (this.headByte === HEAD_BYTE_REQUIRED) {\n this.headByte = this.readU8();\n // console.log(\"headByte\", prettyByte(this.headByte));\n }\n return this.headByte;\n };\n Decoder.prototype.complete = function () {\n this.headByte = HEAD_BYTE_REQUIRED;\n };\n Decoder.prototype.readArraySize = function () {\n var headByte = this.readHeadByte();\n switch (headByte) {\n case 0xdc:\n return this.readU16();\n case 0xdd:\n return this.readU32();\n default: {\n if (headByte < 0xa0) {\n return headByte - 0x90;\n }\n else {\n throw new DecodeError(\"Unrecognized array type byte: \".concat(prettyByte(headByte)));\n }\n }\n }\n };\n Decoder.prototype.pushMapState = function (size) {\n if (size > this.maxMapLength) {\n throw new DecodeError(\"Max length exceeded: map length (\".concat(size, \") > maxMapLengthLength (\").concat(this.maxMapLength, \")\"));\n }\n this.stack.push({\n type: 1 /* State.MAP_KEY */,\n size: size,\n key: null,\n readCount: 0,\n map: {},\n });\n };\n Decoder.prototype.pushArrayState = function (size) {\n if (size > this.maxArrayLength) {\n throw new DecodeError(\"Max length exceeded: array length (\".concat(size, \") > maxArrayLength (\").concat(this.maxArrayLength, \")\"));\n }\n this.stack.push({\n type: 0 /* State.ARRAY */,\n size: size,\n array: new Array(size),\n position: 0,\n });\n };\n Decoder.prototype.decodeUtf8String = function (byteLength, headerOffset) {\n var _a;\n if (byteLength > this.maxStrLength) {\n throw new DecodeError(\"Max length exceeded: UTF-8 byte length (\".concat(byteLength, \") > maxStrLength (\").concat(this.maxStrLength, \")\"));\n }\n if (this.bytes.byteLength < this.pos + headerOffset + byteLength) {\n throw MORE_DATA;\n }\n var offset = this.pos + headerOffset;\n var object;\n if (this.stateIsMapKey() && ((_a = this.keyDecoder) === null || _a === void 0 ? void 0 : _a.canBeCached(byteLength))) {\n object = this.keyDecoder.decode(this.bytes, offset, byteLength);\n }\n else if (byteLength > TEXT_DECODER_THRESHOLD) {\n object = utf8DecodeTD(this.bytes, offset, byteLength);\n }\n else {\n object = utf8DecodeJs(this.bytes, offset, byteLength);\n }\n this.pos += headerOffset + byteLength;\n return object;\n };\n Decoder.prototype.stateIsMapKey = function () {\n if (this.stack.length > 0) {\n var state = this.stack[this.stack.length - 1];\n return state.type === 1 /* State.MAP_KEY */;\n }\n return false;\n };\n Decoder.prototype.decodeBinary = function (byteLength, headOffset) {\n if (byteLength > this.maxBinLength) {\n throw new DecodeError(\"Max length exceeded: bin length (\".concat(byteLength, \") > maxBinLength (\").concat(this.maxBinLength, \")\"));\n }\n if (!this.hasRemaining(byteLength + headOffset)) {\n throw MORE_DATA;\n }\n var offset = this.pos + headOffset;\n var object = this.bytes.subarray(offset, offset + byteLength);\n this.pos += headOffset + byteLength;\n return object;\n };\n Decoder.prototype.decodeExtension = function (size, headOffset) {\n if (size > this.maxExtLength) {\n throw new DecodeError(\"Max length exceeded: ext length (\".concat(size, \") > maxExtLength (\").concat(this.maxExtLength, \")\"));\n }\n var extType = this.view.getInt8(this.pos + headOffset);\n var data = this.decodeBinary(size, headOffset + 1 /* extType */);\n return this.extensionCodec.decode(data, extType, this.context);\n };\n Decoder.prototype.lookU8 = function () {\n return this.view.getUint8(this.pos);\n };\n Decoder.prototype.lookU16 = function () {\n return this.view.getUint16(this.pos);\n };\n Decoder.prototype.lookU32 = function () {\n return this.view.getUint32(this.pos);\n };\n Decoder.prototype.readU8 = function () {\n var value = this.view.getUint8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readI8 = function () {\n var value = this.view.getInt8(this.pos);\n this.pos++;\n return value;\n };\n Decoder.prototype.readU16 = function () {\n var value = this.view.getUint16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readI16 = function () {\n var value = this.view.getInt16(this.pos);\n this.pos += 2;\n return value;\n };\n Decoder.prototype.readU32 = function () {\n var value = this.view.getUint32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readI32 = function () {\n var value = this.view.getInt32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readU64 = function () {\n var value = getUint64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readI64 = function () {\n var value = getInt64(this.view, this.pos);\n this.pos += 8;\n return value;\n };\n Decoder.prototype.readF32 = function () {\n var value = this.view.getFloat32(this.pos);\n this.pos += 4;\n return value;\n };\n Decoder.prototype.readF64 = function () {\n var value = this.view.getFloat64(this.pos);\n this.pos += 8;\n return value;\n };\n return Decoder;\n}());\nexport { Decoder };\n//# sourceMappingURL=Decoder.mjs.map","import { Decoder } from \"./Decoder.mjs\";\nexport var defaultDecodeOptions = {};\n/**\n * It decodes a single MessagePack object in a buffer.\n *\n * This is a synchronous decoding function.\n * See other variants for asynchronous decoding: {@link decodeAsync()}, {@link decodeStream()}, or {@link decodeArrayStream()}.\n *\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decode(buffer, options) {\n if (options === void 0) { options = defaultDecodeOptions; }\n var decoder = new Decoder(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decode(buffer);\n}\n/**\n * It decodes multiple MessagePack objects in a buffer.\n * This is corresponding to {@link decodeMultiStream()}.\n *\n * @throws {@link RangeError} if the buffer is incomplete, including the case where the buffer is empty.\n * @throws {@link DecodeError} if the buffer contains invalid data.\n */\nexport function decodeMulti(buffer, options) {\n if (options === void 0) { options = defaultDecodeOptions; }\n var decoder = new Decoder(options.extensionCodec, options.context, options.maxStrLength, options.maxBinLength, options.maxArrayLength, options.maxMapLength, options.maxExtLength);\n return decoder.decodeMulti(buffer);\n}\n//# sourceMappingURL=decode.mjs.map","// Tiling utils\n\nimport { Color, ColorOptions } from \"../types\"\n\nexport const isDev = process.env.NODE_ENV === 'development'\nexport const isProd = process.env.NODE_ENV === 'production'\n\n/**\n * Returns a range of x and y tile coordinates that contain the tileTopLeft and tileBottomRight\n * \n * @param tileTopLeft Point containing the image x and y coordinates of the most top left corner\n * @param tileBottomRight Point containing the image x and y coordinates of the most bottom right corner\n * @param tileWidth Width of the tile (ie. 256)\n * @param tileHeight Height of the tile (also 256)\n * @returns \n */\nexport function getTileRange(tileTopLeft: OpenSeadragon.Point, tileBottomRight: OpenSeadragon.Point, tileWidth: number, tileHeight: number) {\n return {\n x: {\n start: Math.floor(Math.round(tileTopLeft.x) / tileWidth),\n end: Math.round(tileBottomRight.x) / tileWidth,\n },\n y: {\n start: Math.floor(Math.round(tileTopLeft.y) / tileHeight),\n end: Math.round(tileBottomRight.y) / tileHeight\n }\n }\n}\n\n\n// Canvas utils\n/**\n * Utility to paint lines over a canvas, used for debugging\n * \n * @param ctx Canvas to paint over\n */\nexport function drawLinesOverCanvas(ctx: CanvasRenderingContext2D) {\n ctx.save()\n \n const height = ctx.canvas.height\n const width = ctx.canvas.width\n const lineWidth = 2\n ctx.lineWidth = lineWidth\n\n for (let i = 0; i < Math.floor(255 / 2); i += lineWidth) {\n const curH = height - i * 2\n const curW = width - i * 2\n ctx.beginPath()\n ctx.rect(i, i, curW, curH)\n const rgb = [0, 0, 0]\n rgb[(i / lineWidth) % 3] = 255\n ctx.strokeStyle = `rgba(${rgb.join(',')}, 1)`\n ctx.stroke()\n ctx.closePath()\n }\n \n ctx.restore()\n}\n\n/**\n * Utility to print text in the top a canvas\n * \n * @param ctx Canvas to print the text in\n * @param text Text to print\n * @param y Y level to print text add, to not overlap previously written text\n */\nexport function log2canvas(ctx: CanvasRenderingContext2D, text: string, y = 0) {\n const yOffset = y * 30\n ctx.save()\n ctx.beginPath()\n \n ctx.rect(0, yOffset, ctx.canvas.width, 30)\n ctx.fillStyle = `rgba(255, 255, 255, 0.5)`\n ctx.fill()\n\n ctx.fillStyle = `rgba(0, 0, 0, 1)`\n ctx.font = \"20px Verdana\";\n ctx.fillText(text, 5, yOffset + 25)\n \n ctx.closePath()\n ctx.restore()\n}\n\n/**\n * Utility to add a translucent border to each edge of a canvas\n * \n * @param ctx Canvas to add the border to\n * @param width Width of the border\n */\nexport function addBorderToCanvas(ctx: CanvasRenderingContext2D, width=1) {\n // Adds a red border to the canvas edge\n ctx.beginPath()\n ctx.lineWidth = width\n ctx.strokeStyle = `rgba(0, 255, 0, 0.4)`\n ctx.rect(0, 0, ctx.canvas.width, ctx.canvas.height)\n ctx.stroke()\n ctx.closePath()\n}\n\n\n\n// UI / UX utils\nexport let SHOULD_SHOW_STATS = isDev\n\n/**\n * UI Utility to add a box containing the current mouse position over the OpenSeadragon Viewer\n * to a box in the bottom right. Usefull for debugging.\n */\nexport const addMouseTracker = isDev ? addMouseTrackerRaw : () => {}\nexport function addMouseTrackerRaw() {\n const OpenSeadragon = window.OpenSeadragon\n\n const viewer = ((window as any).viewer as OpenSeadragon.Viewer)\n \n const mousePosDiv = document.createElement('div')\n mousePosDiv.style.cssText = 'position: fixed;z-index: 2;right: 10px;bottom: 60px;background: rgba(255,255,255,0.8);'\n document.body.appendChild(mousePosDiv)\n\n const tracker = new OpenSeadragon.MouseTracker({\n element: viewer.container,\n moveHandler: function(event: any) {\n const webPoint = event.position\n const viewportPoint = viewer.viewport.pointFromPixel(webPoint)\n const imagePoint = viewer.viewport.viewportToImageCoordinates(viewportPoint)\n const zoom = viewer.viewport.getZoom(true)\n const imageZoom = viewer.viewport.viewportToImageZoom(zoom)\n\n mousePosDiv.innerHTML = 'Web:
' + webPoint.toString() + \n '

Viewport:
' + viewportPoint.toString() +\n `

Image:
(${imagePoint.x.toFixed(0)}, ${imagePoint.y.toFixed(0)})` + \n '

Zoom:
' + imageZoom.toFixed(2)\n }\n })\n tracker.setTracking(true)\n}\n\n/**\n * UI Utility to add a white box to the right hand side of the browser that is used for logging and toggling some settings. \n * Usefull for debbuging purposes.\n */\nexport const addInfoBox = isDev ? addInfoBoxRaw : () => {}\nexport function addInfoBoxRaw() {\n const isDevEnv = document.title.includes('DEV')\n const infoDiv = document.createElement('div')\n log('infodiv', infoDiv)\n infoDiv.style.cssText = 'position: fixed;z-index: 2;right: 10px;bottom: 350px;background: rgba(255,255,255,0.8);'\n if (!isDevEnv) infoDiv.style.cssText += 'display: none;'\n document.body.appendChild(infoDiv)\n\n infoDiv.innerHTML = '
Toggle stats:
'\n const statsInput = document.createElement(\"input\");\n statsInput.type = \"checkbox\";\n if (SHOULD_SHOW_STATS) statsInput.setAttribute('checked', 'true')\n\n statsInput.addEventListener('change', function() {\n const viewer = ((window as any).viewer as OpenSeadragon.Viewer)\n SHOULD_SHOW_STATS = statsInput.checked\n viewer.world.resetItems()\n })\n\n infoDiv.appendChild(statsInput); // put it into the DOM\n\n const fpsDiv = document.createElement(\"div\");\n // Add FPS counter\n (() => {\n let before = performance.now()\n const fpses: number[] = []\n function logFPS(){\n const now = performance.now()\n const fps = Math.round(1000/(now-before))\n if (fpses.length > 15) fpses.shift()\n fpses.push(fps)\n const minFps = fpses.reduce((prevMin, cur) => prevMin < cur ? prevMin : cur)\n before = now\n fpsDiv.innerText = minFps.toFixed(1) + ' FPS'\n requestAnimationFrame(logFPS)\n }\n requestAnimationFrame(logFPS);\n })()\n infoDiv.appendChild(fpsDiv); // put it into the DOM\n\n const infoDivText = document.createElement('p')\n infoDivText.id = 'infoDivText'\n infoDiv.appendChild(infoDivText);\n}\n\nconst LOGGED_2_SCREEN: string[] = []\nconst t0 = performance.now()\n\n/**\n * Logs a string to the infobox on the right of the screen. \n * If the infobox is not present, the string is alerted.\n * No-op when not in dev\n * \n * @param text Text to log\n */\nexport const log2screen = isDev ? log2screenRaw : () => {}\nfunction log2screenRaw(text: string) {\n const msPassed = (performance.now() - t0).toFixed(1)\n\n LOGGED_2_SCREEN.push(`${msPassed}ms: ${text}`)\n if (LOGGED_2_SCREEN.length > 15) LOGGED_2_SCREEN.shift()\n\n const infoDivText = document.getElementById('infoDivText')\n if (!infoDivText) return alert('Could not log to infoDivText: \\n' + text)\n\n infoDivText.innerText = LOGGED_2_SCREEN.join('\\n') \n}\n\nexport const DEFAULT_COLOR_POLYGONS: Color = {\n r: 0,\n g: 255,\n b: 255,\n a: 1\n}\n\nexport const DEFAULT_COLOR_MASK: Color = {\n r: 255,\n g: 255,\n b: 0,\n a: 1\n}\n\n/**\n * Utility to get the state of a promise.\n * \n * @param p Any promise\n * @returns A string with the state of the passed promise\n */\nexport function promiseState(p: any): Promise<\"pending\" | \"fulfilled\" | \"rejected\"> {\n // Returns whether a promise is pending, fullfilled, or rejected\n const t = {};\n return Promise.race([p, t])\n .then(v => (v === t)? \"pending\" : \"fulfilled\", () => \"rejected\");\n}\n\n/**\n * Util to log to the console, if in Development.\n * \n * @param args Arguments to be logged to the console.\n */\nexport const log = isDev ? console.log : () => {}\n\n/**\n * Chunks any array into a specified size. \n * Like `[1, 2, 3, 4] => [[1, 2], [3, 4]]` if size == 2\n * \n * @param arr Array to chunk\n * @param size Size of each of chunks\n * @returns A chunked array\n */\nexport function chunkArr(arr: Type[] | Uint32Array | Uint8Array, size: number): Type[][] {\n const chunkedArr = [];\n for(let i = 0; i < arr.length; i += size) {\n chunkedArr.push(arr.slice(i, i+size))\n }\n return chunkedArr\n}\n\n/**\n * Copies a canvas context, so that it can be freely modified without changing the original.\n * \n * @param origCtx Context that is copied from\n * @param copyOverImage Whether to also copy the image data\n * @param willReadFrequently Make the data CPU-bound instead of GPU-bound\n * @returns Context of a new canvas\n */\nexport function copyCtx(origCtx: CanvasRenderingContext2D, copyOverImage = true, willReadFrequently = false) {\n const canvas = window.document.createElement('canvas')\n canvas.width = origCtx.canvas.width\n canvas.height = origCtx.canvas.height\n const newCtx = canvas.getContext('2d', { willReadFrequently })\n if (copyOverImage) newCtx.drawImage(origCtx.canvas, 0, 0)\n return newCtx\n}\n\n/**\n * Converts a 'rgb[a](100, 242, 133)' or hex '#FF29E2' string to an rgb color object\n * \n * @param colorStr RGB or hex color string\n * @returns Color object with r, g, b, a properties, alpha is 0-1\n */\nexport function parseColor(colorStr: string): Color {\n if (colorStr.startsWith('rgb')) {\n // Parse RGB string\n const colorPart = colorStr.split(\"(\")[1].split(\")\")[0]\n const rgbParts = colorPart.split(',')\n const [r, g, b] = rgbParts.slice(0, 3).map(c => parseInt(c))\n const a = rgbParts.length === 4 ? parseFloat(rgbParts[3]) : 1\n return {r, g, b, a}\n } else if (colorStr.startsWith('#')) {\n // Parse HEX string\n const r = parseInt(colorStr.slice(1, 3), 16);\n const g = parseInt(colorStr.slice(3, 5), 16);\n const b = parseInt(colorStr.slice(5, 7), 16);\n const a = colorStr.length === 9 ? parseInt(colorStr.slice(7, 9), 16) : 256 // #RRGGBBAA\n return {r, g, b, a: a / 256}\n }\n}"," // 4 KiB is pretty fast, as we don't trigger buffer increases very often, also a common page size\nconst ONE_MB = 1024 * 1024\nconst STEP_SIZE = 5 * ONE_MB\n\n/**\n * Class that can effeciently store arrays of integers in a continuous block of memory\n */\nexport class EfficientArray {\n valueArrayConstructor: Uint32ArrayConstructor = Uint32Array\n valuesArray: Uint32Array = new Uint32Array(new ArrayBuffer(ONE_MB))\n offsetArray = new Uint32Array(new ArrayBuffer(ONE_MB))\n curOffsetIndex = 0\n\n constructor (valueArrayConstructor?: Uint32ArrayConstructor) {\n if (valueArrayConstructor) {\n this.valueArrayConstructor = valueArrayConstructor\n this.valuesArray = new valueArrayConstructor(new ArrayBuffer(ONE_MB))\n }\n\n }\n\n #increaseValuesBufferSize(numNewElements: number) {\n const numBytesNeeded = numNewElements * this.valuesArray.BYTES_PER_ELEMENT\n let stepSize = this.valuesArray.byteLength > 20 * ONE_MB ? 20 * ONE_MB : STEP_SIZE\n\n const numNewBytes = Math.ceil(numBytesNeeded / stepSize) * stepSize\n const newBuf = new ArrayBuffer(this.valuesArray.byteLength + numNewBytes)\n const newView = new this.valueArrayConstructor(newBuf)\n newView.set(this.valuesArray)\n this.valuesArray = newView\n }\n\n #increaseOffsetsBufferSize() {\n const newBuf = new ArrayBuffer(this.offsetArray.byteLength + STEP_SIZE)\n const newView = new Uint32Array(newBuf)\n newView.set(this.offsetArray)\n this.offsetArray = newView\n }\n\n /**\n * Stores list of numbers \n * \n * @param values Array of numbers, all numbers must be >= 0 and less than 2^^16\n */\n addValues(values: ArrayLike) {\n const offset = this.offsetArray[this.curOffsetIndex]\n\n // Make sure we stay within bounds of the ArrayBuffer, and extend it if needed\n if (offset + values.length + 1 > this.valuesArray.length) this.#increaseValuesBufferSize(values.length)\n if (this.curOffsetIndex + 1 >= this.offsetArray.length) this.#increaseOffsetsBufferSize()\n\n // Add the values and store the new offset\n for (let i = 0; i < values.length; i++) this.valuesArray[offset + i] = values[i]\n this.offsetArray[++this.curOffsetIndex] = offset + values.length\n }\n\n /**\n * Retrieves a list of numbers\n * \n * @param i Index of the wanted number array\n * @returns Mutable Uint32Array | Uint8Array\n */\n getValues(i: number) {\n if (i >= this.curOffsetIndex) return undefined\n const start = this.offsetArray[i]\n const end = this.offsetArray[i + 1]\n return this.valuesArray.subarray(start, end)\n }\n\n get length() {\n return this.curOffsetIndex\n }\n\n get numValues() {\n return this.offsetArray[this.curOffsetIndex]\n }\n}\n","import { EfficientArray } from \"../common/EfficientArray\"\nimport { getTileRange } from \"../common/utils\"\nimport { NegativePolygonObj, Polygon } from \"../types\"\n\n/**\n * Tiles exist of a y key containing x keys, containing an array with the present polygon\n * indices.\n */\ntype Tiles = {\n [key: number]: {\n [key: number]: Uint32Array\n }\n}\n\nexport class PolygonContainer {\n allTiles: Tiles = {}\n bigTiles: Tiles = {} // Contains the indices of big polygons in each tile\n polygons: EfficientArray = new EfficientArray()\n negativePolygons: NegativePolygonObj = {}\n tileSize: number = -1\n\n /**\n * Retrieves a clean list of polygons based on the specified indices \n * Can be thought of as getting a slice of polygons in a nice format\n * \n * @param indices Array of polygon indices that need to be retrieved\n * @returns All the polygons at the specified indices\n */\n getPolygonsFromIndices(indices: ArrayLike) {\n const polygons: Polygon[] = []\n for (let i = 0; i < indices.length; i++) {\n const presentPolygonI = indices[i]\n const vertices = this.polygons.getValues(presentPolygonI) as Uint32Array\n if (!vertices) {\n console.warn(\"No vertices in polygon i\", presentPolygonI, this.polygons)\n continue\n }\n\n const negativePolygonIs = this.negativePolygons[presentPolygonI] ?? []\n \n polygons.push({\n vertices,\n negativePolygons: negativePolygonIs.map(negativeI => this.polygons.getValues(negativeI)) \n })\n }\n return polygons\n }\n\n getPolygonsIinTileRange(range: ReturnType, getOnlyBig: boolean) {\n const tiles = getOnlyBig ? this.bigTiles : this.allTiles\n\n const allPresentIndices: Set = new Set()\n for (let y = range.y.start; y < range.y.end; y++) {\n for (let x = range.x.start; x < range.x.end; x++) {\n if (!(y in tiles)) continue\n if (!(x in tiles[y])) continue\n const presentIndicesInTile = tiles[y][x]\n presentIndicesInTile.forEach((i) => allPresentIndices.add(i))\n }\n }\n return allPresentIndices\n }\n /**\n * Gets all the polygons in a range of x and y coordinates of tiles\n * \n * @param range The x and y range of the tiles\n * @param getOnlyBig Boolean to indicate whether to only retrieve the big polygons in the list\n * @returns A list of polygons in the specified range\n */\n getTileRange(range: ReturnType, getOnlyBig: boolean) {\n const allPresentIndices = this.getPolygonsIinTileRange(range, getOnlyBig)\n return this.getPolygonsFromIndices([...allPresentIndices])\n }\n}","// Helpers\n\n/**\n * Reads a single bit from a byte buffer at an offset\n * \n * @param arr Byte buffer\n * @param offset Offset to read\n * @returns Either 1 or 0\n */\nfunction readBit(arr: Uint8Array, offset: number): 1 | 0 {\n const byteI = Math.floor(offset / 8)\n if (byteI > arr.length - 1) throw new Error('Bit index is more than available in buffer')\n const byte = arr[byteI]\n const mask = 1 << (7 - offset % 8); // gets the nth bit from the left\n return byte & mask ? 1 : 0\n}\n\n/**\n * Reads any number bits from a byte buf \n * WARNING: bits returned as a number, so prefixing zeros are dropped, max 63 bits\n * \n * @param arr Byte buf\n * @param start start offset to read from\n * @param end end of the offset to read\n * @returns \n */\nfunction readBits(arr: Uint8Array, start: number, end: number) {\n // TODO can likely be further optimized by reading more than 1 bit at a time\n let num = 0\n for (let offset = start; offset < end; offset++) {\n const i = end - offset - 1\n num += readBit(arr, offset) << i\n }\n return num\n}\n\n// Converters\nexport type OmegaEncodingType = 'naturalOnly' | 'naturalZero' | 'integers'\n\n/**\n * Converts raw numbers into their original numbers using the encoding type\n * \n * @param num raw number\n * @param type Omega encoding type, natural number, all ints etc.\n * @returns The original number\n */\nfunction finalizeDecodeWithType(num: number, type: OmegaEncodingType) {\n if (type == 'naturalOnly') return num // No op\n else if (type == 'naturalZero') return num - 1\n else if (type == 'integers') {\n // [1, 2, 3, 4, 5] -> [0, 1, -1, 2, -2]\n return Math.ceil(num / 2 * (num % 2 == 0 ? 1 : -1))\n } else throw new Error('Unsupported type')\n}\n\n/**\n * Decodes a byte buffer using Omega Elias Encoding \n * WARNING: Can result in suffixing zero's if the final byte was not filled using encoding\n * \n * @param encoded Byte buffer of the omega encoded numbers\n * @param type Omega encoding type, natural number, all ints etc.\n * @returns A list of numbers that where encoded\n */\nexport function omegaDecode(encoded: Uint8Array, type: OmegaEncodingType): number[] {\n const rawNums: number[] = []\n let offset = 0\n const numBitsAvailable = encoded.byteLength * 8\n\n while (numBitsAvailable > offset) {\n const [newNum, newOffset] = decodeRaw(encoded, 1, offset)\n offset = newOffset\n \n rawNums.push(newNum)\n }\n\n const nums = rawNums.map((num) => finalizeDecodeWithType(num, type))\n\n return nums\n}\n\n/**\n * Decodes a single raw number from the byte buffer, only to be used by omegaDecode\n * \n * @param encoded Byte buffer\n * @param num Current raw number\n * @param offset current offset in byte buf\n * @returns The decoded raw number\n */\nfunction decodeRaw(encoded: Uint8Array, num: number, offset: number): [number, number] {\n if (readBit(encoded, offset + 0) == 0) return [num, offset + 1]\n // If the next bit is a \"1\" then read it plus N more bits, and use that binary number as the new value of N. Go back to Step 2.\n const newOffset = offset + num + 1\n const newNum = readBits(encoded, offset + 0, offset + num + 1)\n\n return decodeRaw(encoded, newNum, newOffset)\n}","import { EfficientArray } from \"../../common/EfficientArray\";\nimport { log, log2screen } from \"../../common/utils\";\nimport { omegaDecode, OmegaEncodingType } from \"./eliasOmegaDecoder\";\n\n/**\n * Small class that wraps a byte buf and keeps an internal pointer that moves forward\n * after a read call\n */\nclass BufReader {\n buf: Uint8Array | null = null\n pointer = 0\n\n constructor(buf: Uint8Array) {\n this.buf = buf\n }\n\n /**\n * Reads a number of bytes from the buffer\n * \n * @param numBytes Number of bytes to read\n * @returns requested bytebuf\n */\n read(numBytes: number) {\n if (!this.buf) throw new Error('no buf')\n const slice = this.buf.slice(this.pointer, this.pointer + numBytes)\n this.pointer += numBytes\n return slice\n }\n \n}\n\n/**\n * Reads the next 4 bytes of a buffer as a 4-byte unsigned integer\n * @param reader Instance of BufReader \n * @returns the number\n */\nfunction readInt(reader: BufReader) {\n const slice = reader.read(4)\n const typedViewer = new Uint32Array(slice.buffer)\n return typedViewer[0]\n}\n\n/**\n * Reads an Elias Omega Encoded array at the current BufReader offset\n * @param reader BufReader instance\n * @param type The type used to during Omega Encoding\n * @returns The array of numbers that was encoded\n */\nfunction readEncArr(reader: BufReader, type: OmegaEncodingType) {\n const arrByteLen = readInt(reader)\n const arrByteSlice = reader.read(arrByteLen)\n const nums = omegaDecode(arrByteSlice, type)\n return nums\n}\n\n/**\n * Reads and parses the raw data encoded in a byte buffer. \n * Does not actually reconstruct the polygons.\n * \n * @param bytes Raw Uint8Array Buffer containing the encoded polygons\n * @returns The needed data to reconstruct the polygons\n */\nexport function readFromBytes(bytes: Uint8Array) {\n const reader = new BufReader(bytes)\n const tileSize = readInt(reader)\n const numRows = readInt(reader)\n const numCols = readInt(reader)\n\n // Read the length of the encoded polygons\n const polygon_lengths_byte_len = readInt(reader)\n const polygon_lengths_bytes = reader.read(polygon_lengths_byte_len)\n const polygonLengths = new Uint32Array(polygon_lengths_bytes.buffer)\n\n const xJumps = readEncArr(reader, 'integers')\n const yJumps = readEncArr(reader, 'integers') \n const num_points_in_tile = readEncArr(reader, 'naturalOnly')\n\n const remaindersLen = readInt(reader)\n const remainders = reader.read(remaindersLen)\n return { tileSize, numRows, numCols, polygonLengths, xJumps, yJumps, num_points_in_tile, remainders }\n}\n\n/**\n * Decodes the polygons using a tile based encoding format\n * \n * @param xJumps The jumps that need to be made to go to new tile, in the x direction\n * @param yJumps The jumps that need to be made to go to new tile, in the y direction\n * @param num_points_in_tile Number of points that need to be read from the current tile\n * @param tileSize The size of each tile in pixels (i.e. 256)\n * @param remainders The actual point value buffer [image_x_1 % 256, image_y_1 % 256, ...]\n * @param polygonLengths The number of points in each of the polygons\n * \n * @returns An EfficientArray that contains all polygons in a decoded uint_32t format\n */\nfunction decodePolygons(\n xJumps: number[], \n yJumps: number[], \n num_points_in_tile: number[], \n tileSize: number, \n remainders: Uint8Array, \n polygonLengths: Uint32Array\n) {\n let tile_x = 0\n let tile_y = 0\n\n const num_points = Math.floor(remainders.length / 2)\n \n polygonLengths = polygonLengths.slice()\n const polygons = new EfficientArray()\n let curPolygon: number[] = []\n\n let remainder_i = 0\n for (let i = 0; i < xJumps.length; i++) {\n const xJump = xJumps[i]\n const yJump = yJumps[i]\n \n tile_x += xJump\n tile_y += yJump\n\n const num_points_in_this_tile = num_points_in_tile[i]\n for (let j = 0; j < num_points_in_this_tile; j++) {\n if (remainder_i / 2 >= num_points) {\n // Because the jump tables are stored as a bitarry with suffixing zero's, these are mistaken for encoded 1's\n // so we calc the real number of points and see if we need to stop\n break\n }\n const x_in_tile = remainders[remainder_i]\n const y_in_tile = remainders[remainder_i + 1]\n\n const img_x = tile_x * tileSize + x_in_tile\n const img_y = tile_y * tileSize + y_in_tile\n\n curPolygon.push(img_x, img_y)\n if (curPolygon.length == polygonLengths[0]) {\n // We are done with this polygon, add it to the effecient array\n // and shift the lengths array\n polygons.addValues(curPolygon)\n polygonLengths = polygonLengths.subarray(1)\n curPolygon = []\n }\n\n remainder_i += 2\n }\n }\n\n return polygons\n}\n\n/**\n * Decodes a list of polygons from a byte buffer\n * \n * @param bytes Raw buffer containing the encoded polygons\n * @returns An EfficientArray that contains all polygons in a decoded image x and y uint_32t format\n */\nexport function decodePolygonsFromBytes(bytes: Uint8Array) {\n log2screen(`Start decoding polygons from ${bytes.length} bytes`)\n const encodedPolygon = readFromBytes(bytes)\n const { tileSize, numRows, numCols, polygonLengths, xJumps, yJumps, num_points_in_tile, remainders } = encodedPolygon\n const polygons = decodePolygons(xJumps, yJumps, num_points_in_tile, tileSize, remainders, polygonLengths)\n log2screen(`Done decoding ${polygons.length} polyons`)\n log(\"decoded\", polygons, \"polygons\")\n return polygons\n}","import { EfficientArray } from \"../common/EfficientArray\";\nimport { PolygonContainer } from \"./PolygonContainer\";\nimport { decodePolygonsFromBytes } from \"./polygonDecoder/polygonDecoder\";\nimport { EncodedTypedArray, NegativePolygonObj, PackedEffecientArray, MaskArray } from \"../types\";\n\n/**\n * Revives mask data into a usable format. Extracts the relevant information from a packed format\n * and turns them into suitable JS-based objects.\n * \n * @param tarBuf Raw buffer containing a TAR file with tile_x_y.png files\n * @returns MaskArray\n */\nexport function reviveMaskFromTar(tarBuf: Uint8Array) {\n const maskArr: MaskArray = {}\n \n const u8 = new Uint8Array(tarBuf)\n const headerFormat = [[0, 100], [124, 136]] // [file_name, octal file length] \n let pos = 0\n \n while (pos < u8.byteLength) {\n const header: string = String.fromCharCode.apply(null, u8.slice(pos, pos+136)) // Convert bytes to string\n const [fileName, octalFileLength] = headerFormat.map((offset) => header.slice(offset[0], offset[1]).replace(/\\0/g,''))\n\n if (fileName === \"\") break;\n const fileNumBytes = parseInt(octalFileLength, 8)\n const fileBuf = u8.slice(pos + 512, pos + 512 + fileNumBytes)\n \n // Save tile in the maskArr\n if (fileName.includes('tile')) {\n // ['x111', 'y108']\n const fileNameParts = fileName.split('tile_')[1].split('.png')[0].split('_')\n const xI = parseInt(fileNameParts[0].slice(1))\n const yI = parseInt(fileNameParts[1].slice(1))\n \n if (maskArr[yI] == null) maskArr[yI] = {}\n maskArr[yI][xI] = fileBuf\n }\n\n // Move forward the pointer\n pos += 512 + Math.ceil(fileNumBytes / 512) * 512\n }\n return maskArr\n}\n\ntype TilePolygonIndices = {\n [key: number]: {\n [key: number]: EncodedTypedArray\n }\n}\n\n/**\n * Revives polygons data into a usable format. Extracts the relevant information from a packed format\n * and turns them into suitable JS-based objects. Is quite space effecient using a contiguous block of memory.\n * \n * @returns PolygonContainer\n */\nexport function polygonReviver(negativePolygons: NegativePolygonObj, tilePolygonIndices: TilePolygonIndices, bigTilePolygonIndices: TilePolygonIndices, encodedPolygons: Uint8Array) {\n const polyCont = new PolygonContainer() \n // Populate the polygon container\n // Starting with the tiles information\n for (const yI in tilePolygonIndices) {\n const row = tilePolygonIndices[yI]\n polyCont.allTiles[yI] = {}\n for (const xI in row) {\n polyCont.allTiles[yI][xI] = typedArrayReviver(row[xI]) as Uint32Array\n }\n }\n\n // Then the big polygon indices\n for (const yI in bigTilePolygonIndices) {\n const row = bigTilePolygonIndices[yI]\n polyCont.bigTiles[yI] = {}\n for (const xI in row) {\n polyCont.bigTiles[yI][xI] = typedArrayReviver(row[xI]) as Uint32Array\n }\n }\n\n // And then the polygon efficient Array\n \n polyCont.polygons = decodePolygonsFromBytes(encodedPolygons)\n \n polyCont.negativePolygons = negativePolygons\n polyCont.tileSize = 256\n return polyCont\n}\n\n/**\n * Revives a byte buffer into a JS typed array, dropping all references to the original buffer\n * \n * @param value The encoded typed array, containing the byte buffer and the type of the array (ie. Uint32)\n * @returns A TypedArray\n */\nexport function typedArrayReviver(value: EncodedTypedArray) {\n // We have an encoded type array for sure now\n\n const bytesView = value.bytes.slice() // Make a copy of the buffer, so we have a zero based index\n if (value.type === 'uint8') return new Uint8Array(bytesView.buffer, bytesView.byteOffset, value.len)\n else if (value.type === 'uint16') return new Uint16Array(bytesView.buffer, bytesView.byteOffset, value.len)\n else if (value.type === 'uint32') return new Uint32Array(bytesView.buffer, bytesView.byteOffset, value.len)\n\n // Should never happen\n return null\n}\n\n/**\n * Revives an EfficientArray into a JS based representation. \n * Currently not in use.\n * \n * @param value The encoded effecient array\n * @returns An EfficientArray\n */\nfunction effecientArrayReviver(value: PackedEffecientArray) {\n const newArr = new EfficientArray()\n newArr.valuesArray = typedArrayReviver(value.data.valuesArray) as Uint32Array\n newArr.offsetArray = typedArrayReviver(value.data.offsetArray) as Uint32Array\n newArr.curOffsetIndex = value.data.length\n return newArr\n}\n","/* @license\n\nExtracted from pdf.js\nhttps://github.com/andreasgal/pdf.js\n\nCopyright (c) 2011 Mozilla Foundation\n\nContributors: Andreas Gal \n Chris G Jones \n Shaon Barman \n Vivien Nicolas <21@vingtetun.org>\n Justin D'Arcangelo \n Yury Delendik\n\nModified and adapted in 2017 by Georg Fischer \n\nPermission is hereby granted, free of charge, to any person obtaining a\ncopy of this software and associated documentation files (the \"Software\"),\nto deal in the Software without restriction, including without limitation\nthe rights to use, copy, modify, merge, publish, distribute, sublicense,\nand/or sell copies of the Software, and to permit persons to whom the\nSoftware is furnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL\nTHE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\nFROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER\nDEALINGS IN THE SOFTWARE. */\n\n/* \n# @license\n#\n# MIT LICENSE\n# Copyright (c) 2011 Devon Govett, 2017 Georg Fischer \n#\n# Permission is hereby granted, free of charge, to any person obtaining a copy of this\n# software and associated documentation files (the \"Software\"), to deal in the Software\n# without restriction, including without limitation the rights to use, copy, modify, merge,\n# publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons\n# to whom the Software is furnished to do so, subject to the following conditions:\n#\n# The above copyright notice and this permission notice shall be included in all copies or\n# substantial portions of the Software.\n#\n# THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING\n# BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */\n\nfunction loadPNG ( url ) {\n\treturn fetchData ( url )\n\t\t.then( data => {\n\t\t\treturn new PNG( data );\n\t\t} );\n}\nfunction fetchData ( url ) {\n\treturn fetch( url )\n\t\t.then( res => res.arrayBuffer() )\n\t\t.then( arrayBuffer => new Uint8Array( arrayBuffer ) );\n}\nfunction toImageData ( png ) {\n\treturn {\n\t\twidth: png.width,\n\t\theight: png.height,\n\t\tdata: png.decodePixels()\n\t};\n}\nfunction error ( e ) {\n\tthrow new Error( e );\n}\n\n/**/\nclass DecodeStream {\n\tconstructor () {\n\t\tthis.pos = 0;\n\t\tthis.bufferLength = 0;\n\t\tthis.eof = false;\n\t\tthis.buffer = null;\n\t}\n\tensureBuffer ( requested ) {\n\t\tconst buffer = this.buffer;\n\t\tconst current = buffer ? buffer.byteLength : 0;\n\t\tif ( requested < current ) {\n\t\t\treturn buffer;\n\t\t}\n\t\tlet size = 512;\n\t\twhile ( size < requested ) {\n\t\t\tsize <<= 1;\n\t\t}\n\t\tconst buffer2 = new Uint8Array( size );\n\t\tfor ( let i = 0; i < current; ++i ) {\n\t\t\tbuffer2[i] = buffer[i];\n\t\t}\n\t\treturn this.buffer = buffer2;\n\t}\n\tgetBytes ( length ) {\n\t\tconst pos = this.pos;\n\t\tlet end;\n\t\tif ( length ) {\n\t\t\tthis.ensureBuffer( pos + length );\n\t\t\tend = pos + length;\n\t\t\twhile ( ! this.eof && this.bufferLength < end ) {\n\t\t\t\tthis.readBlock();\n\t\t\t}\n\t\t\tconst bufEnd = this.bufferLength;\n\t\t\tif ( end > bufEnd ) {\n\t\t\t\tend = bufEnd;\n\t\t\t}\n\t\t} else {\n\t\t\twhile ( ! this.eof ) {\n\t\t\t\tthis.readBlock();\n\t\t\t}\n\t\t\tend = this.bufferLength;\n\t\t}\n\t\tthis.pos = end;\n\t\treturn this.buffer.subarray( pos, end );\n\t}\n}\nconst codeLenCodeMap = new Uint32Array( [\n\t16, 17, 18, 0, 8, 7, 9, 6, 10, 5, 11, 4, 12, 3, 13, 2, 14, 1, 15\n] );\nconst lengthDecode = new Uint32Array( [\n\t0x00003, 0x00004, 0x00005, 0x00006, 0x00007, 0x00008, 0x00009, 0x0000a,\n\t0x1000b, 0x1000d, 0x1000f, 0x10011, 0x20013, 0x20017, 0x2001b, 0x2001f,\n\t0x30023, 0x3002b, 0x30033, 0x3003b, 0x40043, 0x40053, 0x40063, 0x40073,\n\t0x50083, 0x500a3, 0x500c3, 0x500e3, 0x00102, 0x00102, 0x00102\n] );\nconst distDecode = new Uint32Array( [\n\t0x00001, 0x00002, 0x00003, 0x00004, 0x10005, 0x10007, 0x20009, 0x2000d,\n\t0x30011, 0x30019, 0x40021, 0x40031, 0x50041, 0x50061, 0x60081, 0x600c1,\n\t0x70101, 0x70181, 0x80201, 0x80301, 0x90401, 0x90601, 0xa0801, 0xa0c01,\n\t0xb1001, 0xb1801, 0xc2001, 0xc3001, 0xd4001, 0xd6001\n] );\nconst fixedLitCodeTab = [ new Uint32Array( [\n\t0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c0,\n\t0x70108, 0x80060, 0x80020, 0x900a0, 0x80000, 0x80080, 0x80040, 0x900e0,\n\t0x70104, 0x80058, 0x80018, 0x90090, 0x70114, 0x80078, 0x80038, 0x900d0,\n\t0x7010c, 0x80068, 0x80028, 0x900b0, 0x80008, 0x80088, 0x80048, 0x900f0,\n\t0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c8,\n\t0x7010a, 0x80064, 0x80024, 0x900a8, 0x80004, 0x80084, 0x80044, 0x900e8,\n\t0x70106, 0x8005c, 0x8001c, 0x90098, 0x70116, 0x8007c, 0x8003c, 0x900d8,\n\t0x7010e, 0x8006c, 0x8002c, 0x900b8, 0x8000c, 0x8008c, 0x8004c, 0x900f8,\n\t0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c4,\n\t0x70109, 0x80062, 0x80022, 0x900a4, 0x80002, 0x80082, 0x80042, 0x900e4,\n\t0x70105, 0x8005a, 0x8001a, 0x90094, 0x70115, 0x8007a, 0x8003a, 0x900d4,\n\t0x7010d, 0x8006a, 0x8002a, 0x900b4, 0x8000a, 0x8008a, 0x8004a, 0x900f4,\n\t0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cc,\n\t0x7010b, 0x80066, 0x80026, 0x900ac, 0x80006, 0x80086, 0x80046, 0x900ec,\n\t0x70107, 0x8005e, 0x8001e, 0x9009c, 0x70117, 0x8007e, 0x8003e, 0x900dc,\n\t0x7010f, 0x8006e, 0x8002e, 0x900bc, 0x8000e, 0x8008e, 0x8004e, 0x900fc,\n\t0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c2,\n\t0x70108, 0x80061, 0x80021, 0x900a2, 0x80001, 0x80081, 0x80041, 0x900e2,\n\t0x70104, 0x80059, 0x80019, 0x90092, 0x70114, 0x80079, 0x80039, 0x900d2,\n\t0x7010c, 0x80069, 0x80029, 0x900b2, 0x80009, 0x80089, 0x80049, 0x900f2,\n\t0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900ca,\n\t0x7010a, 0x80065, 0x80025, 0x900aa, 0x80005, 0x80085, 0x80045, 0x900ea,\n\t0x70106, 0x8005d, 0x8001d, 0x9009a, 0x70116, 0x8007d, 0x8003d, 0x900da,\n\t0x7010e, 0x8006d, 0x8002d, 0x900ba, 0x8000d, 0x8008d, 0x8004d, 0x900fa,\n\t0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c6,\n\t0x70109, 0x80063, 0x80023, 0x900a6, 0x80003, 0x80083, 0x80043, 0x900e6,\n\t0x70105, 0x8005b, 0x8001b, 0x90096, 0x70115, 0x8007b, 0x8003b, 0x900d6,\n\t0x7010d, 0x8006b, 0x8002b, 0x900b6, 0x8000b, 0x8008b, 0x8004b, 0x900f6,\n\t0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900ce,\n\t0x7010b, 0x80067, 0x80027, 0x900ae, 0x80007, 0x80087, 0x80047, 0x900ee,\n\t0x70107, 0x8005f, 0x8001f, 0x9009e, 0x70117, 0x8007f, 0x8003f, 0x900de,\n\t0x7010f, 0x8006f, 0x8002f, 0x900be, 0x8000f, 0x8008f, 0x8004f, 0x900fe,\n\t0x70100, 0x80050, 0x80010, 0x80118, 0x70110, 0x80070, 0x80030, 0x900c1,\n\t0x70108, 0x80060, 0x80020, 0x900a1, 0x80000, 0x80080, 0x80040, 0x900e1,\n\t0x70104, 0x80058, 0x80018, 0x90091, 0x70114, 0x80078, 0x80038, 0x900d1,\n\t0x7010c, 0x80068, 0x80028, 0x900b1, 0x80008, 0x80088, 0x80048, 0x900f1,\n\t0x70102, 0x80054, 0x80014, 0x8011c, 0x70112, 0x80074, 0x80034, 0x900c9,\n\t0x7010a, 0x80064, 0x80024, 0x900a9, 0x80004, 0x80084, 0x80044, 0x900e9,\n\t0x70106, 0x8005c, 0x8001c, 0x90099, 0x70116, 0x8007c, 0x8003c, 0x900d9,\n\t0x7010e, 0x8006c, 0x8002c, 0x900b9, 0x8000c, 0x8008c, 0x8004c, 0x900f9,\n\t0x70101, 0x80052, 0x80012, 0x8011a, 0x70111, 0x80072, 0x80032, 0x900c5,\n\t0x70109, 0x80062, 0x80022, 0x900a5, 0x80002, 0x80082, 0x80042, 0x900e5,\n\t0x70105, 0x8005a, 0x8001a, 0x90095, 0x70115, 0x8007a, 0x8003a, 0x900d5,\n\t0x7010d, 0x8006a, 0x8002a, 0x900b5, 0x8000a, 0x8008a, 0x8004a, 0x900f5,\n\t0x70103, 0x80056, 0x80016, 0x8011e, 0x70113, 0x80076, 0x80036, 0x900cd,\n\t0x7010b, 0x80066, 0x80026, 0x900ad, 0x80006, 0x80086, 0x80046, 0x900ed,\n\t0x70107, 0x8005e, 0x8001e, 0x9009d, 0x70117, 0x8007e, 0x8003e, 0x900dd,\n\t0x7010f, 0x8006e, 0x8002e, 0x900bd, 0x8000e, 0x8008e, 0x8004e, 0x900fd,\n\t0x70100, 0x80051, 0x80011, 0x80119, 0x70110, 0x80071, 0x80031, 0x900c3,\n\t0x70108, 0x80061, 0x80021, 0x900a3, 0x80001, 0x80081, 0x80041, 0x900e3,\n\t0x70104, 0x80059, 0x80019, 0x90093, 0x70114, 0x80079, 0x80039, 0x900d3,\n\t0x7010c, 0x80069, 0x80029, 0x900b3, 0x80009, 0x80089, 0x80049, 0x900f3,\n\t0x70102, 0x80055, 0x80015, 0x8011d, 0x70112, 0x80075, 0x80035, 0x900cb,\n\t0x7010a, 0x80065, 0x80025, 0x900ab, 0x80005, 0x80085, 0x80045, 0x900eb,\n\t0x70106, 0x8005d, 0x8001d, 0x9009b, 0x70116, 0x8007d, 0x8003d, 0x900db,\n\t0x7010e, 0x8006d, 0x8002d, 0x900bb, 0x8000d, 0x8008d, 0x8004d, 0x900fb,\n\t0x70101, 0x80053, 0x80013, 0x8011b, 0x70111, 0x80073, 0x80033, 0x900c7,\n\t0x70109, 0x80063, 0x80023, 0x900a7, 0x80003, 0x80083, 0x80043, 0x900e7,\n\t0x70105, 0x8005b, 0x8001b, 0x90097, 0x70115, 0x8007b, 0x8003b, 0x900d7,\n\t0x7010d, 0x8006b, 0x8002b, 0x900b7, 0x8000b, 0x8008b, 0x8004b, 0x900f7,\n\t0x70103, 0x80057, 0x80017, 0x8011f, 0x70113, 0x80077, 0x80037, 0x900cf,\n\t0x7010b, 0x80067, 0x80027, 0x900af, 0x80007, 0x80087, 0x80047, 0x900ef,\n\t0x70107, 0x8005f, 0x8001f, 0x9009f, 0x70117, 0x8007f, 0x8003f, 0x900df,\n\t0x7010f, 0x8006f, 0x8002f, 0x900bf, 0x8000f, 0x8008f, 0x8004f, 0x900ff\n] ), 9 ];\nconst fixedDistCodeTab = [ new Uint32Array( [\n\t0x50000, 0x50010, 0x50008, 0x50018, 0x50004, 0x50014, 0x5000c, 0x5001c,\n\t0x50002, 0x50012, 0x5000a, 0x5001a, 0x50006, 0x50016, 0x5000e, 0x00000,\n\t0x50001, 0x50011, 0x50009, 0x50019, 0x50005, 0x50015, 0x5000d, 0x5001d,\n\t0x50003, 0x50013, 0x5000b, 0x5001b, 0x50007, 0x50017, 0x5000f, 0x00000\n] ), 5];\nclass FlateStream extends DecodeStream {\n\tconstructor ( bytes ) {\n\t\tsuper();\n\t\tlet bytesPos = 0;\n\t\tconst cmf = bytes[bytesPos++];\n\t\tconst flg = bytes[bytesPos++];\n\t\tif ( cmf == -1 || flg == -1 ){\n\t\t\terror('Invalid header in flate stream');\n\t\t}\n\t\tif ( ( cmf & 0x0f ) != 0x08 ) {\n\t\t\terror('Unknown compression method in flate stream');\n\t\t}\n\t\tif ( ( ( ( cmf << 8 ) + flg ) % 31 ) != 0 ) {\n\t\t\terror('Bad FCHECK in flate stream');\n\t\t}\n\t\tif ( flg & 0x20 ) {\n\t\t\terror('FDICT bit set in flate stream');\n\t\t}\n\t\tthis.pos = 0;\n\t\tthis.bufferLength = 0;\n\t\tthis.eof = false;\n\t\tthis.buffer = null;\n\t\tthis.bytes = bytes;\n\t\tthis.bytesPos = bytesPos;\n\t\tthis.codeSize = 0;\n\t\tthis.codeBuf = 0;\n\t}\n\tgetBits ( bits ) {\n\t\tlet codeSize = this.codeSize;\n\t\tlet codeBuf = this.codeBuf;\n\t\tlet bytesPos = this.bytesPos;\n\t\tconst bytes = this.bytes;\n\t\tlet b;\n\t\twhile ( codeSize < bits ) {\n\t\t\tif ( typeof ( b = bytes[bytesPos++] ) == 'undefined' ) {\n\t\t\t\terror( 'Bad encoding in flate stream' );\n\t\t\t}\n\t\t\tcodeBuf |= b << codeSize;\n\t\t\tcodeSize += 8;\n\t\t}\n\t\tb = codeBuf & ( ( 1 << bits ) - 1 );\n\t\tthis.codeBuf = codeBuf >> bits;\n\t\tthis.codeSize = codeSize -= bits;\n\t\tthis.bytesPos = bytesPos;\n\t\treturn b;\n\t}\n\tgetCode ( table ) {\n\t\tconst codes = table[0];\n\t\tconst maxLen = table[1];\n\t\tconst bytes = this.bytes;\n\t\tlet codeSize = this.codeSize;\n\t\tlet codeBuf = this.codeBuf;\n\t\tlet bytesPos = this.bytesPos;\n\t\twhile ( codeSize < maxLen ) {\n\t\t\tlet b;\n\t\t\tif ( typeof ( b = bytes[bytesPos++] ) == 'undefined' ) {\n\t\t\t\terror( 'Bad encoding in flate stream' );\n\t\t\t}\n\t\t\tcodeBuf |= ( b << codeSize );\n\t\t\tcodeSize += 8;\n\t\t}\n\t\tconst codeIndex = codeBuf & ( ( 1 << maxLen ) - 1 );\n\t\tconst code = codes[codeIndex];\n\t\tconst codeLen = code >> 16;\n\t\tconst codeVal = code & 0xffff;\n\t\tif ( codeSize == 0 || codeSize < codeLen || codeLen == 0 ) {\n\t\t\terror( 'Bad encoding in flate stream' );\n\t\t}\n\t\tthis.codeBuf = ( codeBuf >> codeLen );\n\t\tthis.codeSize = ( codeSize - codeLen );\n\t\tthis.bytesPos = bytesPos;\n\t\treturn codeVal;\n\t}\n\tgenerateHuffmanTable ( lengths ) {\n\t\tconst n = lengths.length;\n\t\tlet maxLen = 0;\n\t\tfor ( let i = 0; i < n; ++i ) {\n\t\t\tif ( lengths[i] > maxLen ) {\n\t\t\t\tmaxLen = lengths[i];\n\t\t\t}\n\t\t}\n\t\tconst size = 1 << maxLen;\n\t\tconst codes = new Uint32Array( size );\n\t\tfor (\n\t\t\tlet len = 1, code = 0, skip = 2;\n\t\t\tlen <= maxLen;\n\t\t\t++len, code <<= 1, skip <<= 1\n\t\t) {\n\t\t\tfor ( let val = 0; val < n; ++val ) {\n\t\t\t\tif ( lengths[val] == len ) {\n\t\t\t\t\tlet code2 = 0;\n\t\t\t\t\tlet t = code;\n\t\t\t\t\tfor ( var i = 0; i < len; ++i ) {\n\t\t\t\t\t\tcode2 = ( code2 << 1 ) | ( t & 1 );\n\t\t\t\t\t\tt >>= 1;\n\t\t\t\t\t}\n\t\t\t\t\tfor ( var i = code2; i < size; i += skip ) {\n\t\t\t\t\t\tcodes[i] = ( len << 16 ) | val;\n\t\t\t\t\t}\n\t\t\t\t\t++code;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn [ codes, maxLen ];\n\t}\n\treadBlock () {\n\t\tlet i = 0;\n\t\tfunction repeat ( stream, array, len, offset, what ) {\n\t\t\tlet repeat = stream.getBits( len ) + offset;\n\t\t\twhile ( repeat-- > 0 ) {\n\t\t\t\tarray[i++] = what;\n\t\t\t}\n\t\t}\n\t\tlet hdr = this.getBits( 3 );\n\t\tif ( hdr & 1 ) {\n\t\t\tthis.eof = true;\n\t\t}\n\t\thdr >>= 1;\n\t\tif ( hdr == 0 ) {\n\t\t\tconst bytes = this.bytes;\n\t\t\tlet bytesPos = this.bytesPos;\n\t\t\tlet b;\n\t\t\tif ( typeof ( b = bytes[bytesPos++] ) == 'undefined' ) {\n\t\t\t\terror( 'Bad block header in flate stream' );\n\t\t\t}\n\t\t\tlet blockLen = b;\n\t\t\tif ( typeof ( b = bytes[bytesPos++] ) == 'undefined' ) {\n\t\t\t\terror( 'Bad block header in flate stream' );\n\t\t\t}\n\t\t\tblockLen |= ( b << 8 );\n\t\t\tif ( typeof ( b = bytes[bytesPos++] ) == 'undefined' ) {\n\t\t\t\terror( 'Bad block header in flate stream' );\n\t\t\t}\n\t\t\tlet check = b;\n\t\t\tif ( typeof ( b = bytes[bytesPos++] ) == 'undefined' ) {\n\t\t\t\terror( 'Bad block header in flate stream' );\n\t\t\t}\n\t\t\tcheck |= ( b << 8 );\n\t\t\tif ( check != ( ~blockLen & 0xffff ) ) {\n\t\t\t\terror( 'Bad uncompressed block length in flate stream' );\n\t\t\t}\n\t\t\tthis.codeBuf = 0;\n\t\t\tthis.codeSize = 0;\n\t\t\tconst bufferLength = this.bufferLength;\n\t\t\tconst buffer = this.ensureBuffer( bufferLength + blockLen );\n\t\t\tconst end = bufferLength + blockLen;\n\t\t\tthis.bufferLength = end;\n\t\t\tfor ( let n = bufferLength; n < end; ++n ) {\n\t\t\t\tif (typeof ( b = bytes[bytesPos++] ) == 'undefined' ) {\n\t\t\t\t\tthis.eof = true;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tbuffer[n] = b;\n\t\t\t}\n\t\t\tthis.bytesPos = bytesPos;\n\t\t\treturn;\n\t\t}\n\t\tlet litCodeTable;\n\t\tlet distCodeTable;\n\t\tif ( hdr == 1 ) {\n\t\t\tlitCodeTable = fixedLitCodeTab;\n\t\t\tdistCodeTable = fixedDistCodeTab;\n\t\t} else if ( hdr == 2 ) {\n\t\t\tconst numLitCodes = this.getBits( 5 ) + 257;\n\t\t\tconst numDistCodes = this.getBits( 5 ) + 1;\n\t\t\tconst numCodeLenCodes = this.getBits( 4 ) + 4;\n\t\t\tconst codeLenCodeLengths = Array( codeLenCodeMap.length );\n\t\t\ti = 0;\n\t\t\twhile ( i < numCodeLenCodes ){\n\t\t\t\tcodeLenCodeLengths[codeLenCodeMap[i++]] = this.getBits( 3 );\n\t\t\t}\n\t\t\tconst codeLenCodeTab = this.generateHuffmanTable( codeLenCodeLengths );\n\t\t\tlet len = 0;\n\t\t\tconst codes = numLitCodes + numDistCodes;\n\t\t\tconst codeLengths = new Array( codes );\n\t\t\ti = 0;\n\t\t\twhile ( i < codes ) {\n\t\t\t\tlet code = this.getCode( codeLenCodeTab );\n\t\t\t\tif ( code == 16 ) {\n\t\t\t\t\trepeat( this, codeLengths, 2, 3, len );\n\t\t\t\t} else if ( code == 17 ) {\n\t\t\t\t\trepeat( this, codeLengths, 3, 3, len = 0 );\n\t\t\t\t} else if ( code == 18 ) {\n\t\t\t\t\trepeat( this, codeLengths, 7, 11, len = 0 );\n\t\t\t\t} else {\n\t\t\t\t\tcodeLengths[i++] = len = code;\n\t\t\t\t}\n\t\t\t}\n\t\t\tlitCodeTable = this.generateHuffmanTable( codeLengths.slice( 0, numLitCodes ) );\n\t\t\tdistCodeTable = this.generateHuffmanTable( codeLengths.slice( numLitCodes, codes ) );\n\t\t} else {\n\t\t\terror( 'Unknown block type in flate stream' );\n\t\t}\n\t\tlet buffer = this.buffer;\n\t\tlet limit = buffer ? buffer.length : 0;\n\t\tlet pos = this.bufferLength;\n\t\twhile ( true ) {\n\t\t\tlet code1 = this.getCode( litCodeTable );\n\t\t\tif ( code1 < 256 ) {\n\t\t\t\tif ( pos + 1 >= limit ) {\n\t\t\t\t\tbuffer = this.ensureBuffer( pos + 1 );\n\t\t\t\t\tlimit = buffer.length;\n\t\t\t\t}\n\t\t\t\tbuffer[pos++] = code1;\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tif ( code1 == 256 ) {\n\t\t\t\tthis.bufferLength = pos;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcode1 -= 257;\n\t\t\tcode1 = lengthDecode[code1];\n\t\t\tlet code2 = code1 >> 16;\n\t\t\tif ( code2 > 0 ) {\n\t\t\t\tcode2 = this.getBits( code2 );\n\t\t\t}\n\t\t\tconst len = ( code1 & 0xffff ) + code2;\n\t\t\tcode1 = this.getCode( distCodeTable );\n\t\t\tcode1 = distDecode[code1];\n\t\t\tcode2 = code1 >> 16;\n\t\t\tif ( code2 > 0 ) {\n\t\t\t\tcode2 = this.getBits( code2 );\n\t\t\t}\n\t\t\tconst dist = ( code1 & 0xffff ) + code2;\n\t\t\tif ( pos + len >= limit ) {\n\t\t\t\tbuffer = this.ensureBuffer( pos + len );\n\t\t\t\tlimit = buffer.length;\n\t\t\t}\n\t\t\tfor ( let k = 0; k < len; ++k, ++pos ) {\n\t\t\t\tbuffer[pos] = buffer[pos - dist];\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**/\nclass PNG {\n\tconstructor ( data ) {\n\t\tthis.data = data;\n\t\tthis.pos = 8;\n\t\tthis.palette = [ ];\n\t\tthis.imgData = [ ];\n\t\tthis.transparency = { };\n\t\tthis.animation = null;\n\t\tthis.text = { };\n\t\tlet frame = null;\n\t\twhile ( true ) {\n\t\t\tlet chunkSize = this.readUInt32();\n\t\t\tconst section = ( ( function () {\n\t\t\t\tlet _i;\n\t\t\t\tconst _results = [ ];\n\t\t\t\tfor ( _i = 0; _i < 4; ++_i ) {\n\t\t\t\t\t_results.push( String.fromCharCode( this.data[this.pos++] ) );\n\t\t\t\t}\n\t\t\t\treturn _results;\n\t\t\t} ).call( this ) ).join( '' );\n\t\t\tswitch ( section ) {\n\t\t\t\tcase 'IHDR':\n\t\t\t\t\tthis.width = this.readUInt32();\n\t\t\t\t\tthis.height = this.readUInt32();\n\t\t\t\t\tthis.bits = this.data[this.pos++];\n\t\t\t\t\tthis.colorType = this.data[this.pos++];\n\t\t\t\t\tthis.compressionMethod = this.data[this.pos++];\n\t\t\t\t\tthis.filterMethod = this.data[this.pos++];\n\t\t\t\t\tthis.interlaceMethod = this.data[this.pos++];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'acTL':\n\t\t\t\t\tthis.animation = {\n\t\t\t\t\t\tnumFrames: this.readUInt32(),\n\t\t\t\t\t\tnumPlays: this.readUInt32() || Infinity,\n\t\t\t\t\t\tframes: [ ]\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'PLTE':\n\t\t\t\t\tthis.palette = this.read( chunkSize );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'fcTL':\n\t\t\t\t\tif ( frame ) {\n\t\t\t\t\t\tthis.animation.frames.push( frame );\n\t\t\t\t\t}\n\t\t\t\t\tthis.pos += 4;\n\t\t\t\t\tframe = {\n\t\t\t\t\t\twidth: this.readUInt32(),\n\t\t\t\t\t\theight: this.readUInt32(),\n\t\t\t\t\t\txOffset: this.readUInt32(),\n\t\t\t\t\t\tyOffset: this.readUInt32()\n\t\t\t\t\t};\n\t\t\t\t\tconst delayNum = this.readUInt16();\n\t\t\t\t\tconst delayDen = this.readUInt16() || 100;\n\t\t\t\t\tframe.delay = 1000 * delayNum / delayDen;\n\t\t\t\t\tframe.disposeOp = this.data[this.pos++];\n\t\t\t\t\tframe.blendOp = this.data[this.pos++];\n\t\t\t\t\tframe.data = [ ];\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'IDAT':\n\t\t\t\tcase 'fdAT':\n\t\t\t\t\tif ( section === 'fdAT' ) {\n\t\t\t\t\t\tthis.pos += 4;\n\t\t\t\t\t\tchunkSize -= 4;\n\t\t\t\t\t}\n\t\t\t\t\tdata = ( frame != null ? frame.data : void 0 ) || this.imgData;\n\t\t\t\t\tlet _i;\n\t\t\t\t\tfor ( _i = 0; 0 <= chunkSize ? _i < chunkSize : _i > chunkSize; 0 <= chunkSize ? ++_i : --_i ) {\n\t\t\t\t\t\tdata.push( this.data[this.pos++] );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'tRNS':\n\t\t\t\t\tthis.transparency = { };\n\t\t\t\t\tswitch ( this.colorType ) {\n\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\tthis.transparency.indexed = this.read( chunkSize );\n\t\t\t\t\t\t\tconst short = 255 - this.transparency.indexed.length;\n\t\t\t\t\t\t\tif ( short > 0 ) {\n\t\t\t\t\t\t\t\tlet _j;\n\t\t\t\t\t\t\t\tfor ( _j = 0; 0 <= short ? _j < short : _j > short; 0 <= short ? ++_j : --_j ) {\n\t\t\t\t\t\t\t\t\tthis.transparency.indexed.push( 255 );\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\tthis.transparency.grayscale = this.read( chunkSize )[0];\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\tthis.transparency.rgb = this.read( chunkSize );\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'tEXt':\n\t\t\t\t\tconst text = this.read( chunkSize );\n\t\t\t\t\tconst index = text.indexOf( 0 );\n\t\t\t\t\tconst key = String.fromCharCode.apply( String, text.slice( 0, index ) );\n\t\t\t\t\tthis.text[key] = String.fromCharCode.apply( String, text.slice( index + 1 ) );\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'IEND':\n\t\t\t\t\tif ( frame ) {\n\t\t\t\t\t\tthis.animation.frames.push( frame );\n\t\t\t\t\t}\n\t\t\t\t\tthis.colors = ( function() {\n\t\t\t\t\t\tswitch ( this.colorType ) {\n\t\t\t\t\t\t\tcase 0:\n\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\tcase 4:\n\t\t\t\t\t\t\t\treturn 1;\n\t\t\t\t\t\t\tcase 2:\n\t\t\t\t\t\t\tcase 6:\n\t\t\t\t\t\t\t\treturn 3;\n\t\t\t\t\t\t}\n\t\t\t\t\t} ).call( this );\n\t\t\t\t\tthis.hasAlphaChannel = this.colorType === 4 || this.colorType === 6;\n\t\t\t\t\tconst colors = this.colors + ( this.hasAlphaChannel ? 1 : 0 );\n\t\t\t\t\tthis.pixelBitlength = this.bits * colors;\n\t\t\t\t\tthis.colorSpace = ( function () {\n\t\t\t\t\t\tswitch ( this.colors ) {\n\t\t\t\t\t\t\tcase 1:\n\t\t\t\t\t\t\t\treturn 'DeviceGray';\n\t\t\t\t\t\t\tcase 3:\n\t\t\t\t\t\t\t\treturn 'DeviceRGB';\n\t\t\t\t\t\t}\n\t\t\t\t\t} ).call( this );\n\t\t\t\t\tthis.imgData = new Uint8Array( this.imgData );\n\t\t\t\t\treturn;\n\t\t\t\tdefault:\n\t\t\t\t\tthis.pos += chunkSize;\n\t\t\t}\n\t\t\tthis.pos += 4;\n\t\t\tif ( this.pos > this.data.length ) {\n\t\t\t\terror( 'Incomplete or corrupt PNG file' );\n\t\t\t}\n\t\t}\n\t\treturn;\n\t}\n\tread ( bytes ) {\n\t\tlet _i;\n\t\tconst _results = [ ];\n\t\tfor ( _i = 0; 0 <= bytes ? _i < bytes : _i > bytes; 0 <= bytes ? ++_i : --_i ) {\n\t\t\t_results.push( this.data[this.pos++] );\n\t\t}\n\t\treturn _results;\n\t}\n\treadUInt32 () {\n\t\tconst b1 = this.data[this.pos++] << 24;\n\t\tconst b2 = this.data[this.pos++] << 16;\n\t\tconst b3 = this.data[this.pos++] << 8;\n\t\tconst b4 = this.data[this.pos++];\n\t\treturn b1 | b2 | b3 | b4;\n\t}\n\treadUInt16 () {\n\t\tconst b1 = this.data[this.pos++] << 8;\n\t\tconst b2 = this.data[this.pos++];\n\t\treturn b1 | b2;\n\t}\n\tdecodePixels ( data ) {\n\t\tif ( data == null ) {\n\t\t\tdata = this.imgData;\n\t\t}\n\t\tif ( data.length === 0 ) {\n\t\t\treturn new Uint8Array(0);\n\t\t}\n\t\tconst stream = new FlateStream( data );\n\t\tdata = stream.getBytes();\n\t\tconst pixelBytes = this.pixelBitlength / 8;\n\t\tconst scanlineLength = pixelBytes * this.width;\n\t\tconst pixels = new Uint8Array( scanlineLength * this.height );\n\t\tconst length = data.length;\n\t\tlet row = 0;\n\t\tlet pos = 0;\n\t\tlet c = 0;\n\t\tlet i = 0;\n\t\tlet _i = 0;\n\t\tlet _j = 0;\n\t\tlet _k = 0;\n\t\tlet _l = 0;\n\t\tlet _m = 0;\n\t\tlet byte;\n\t\tlet col;\n\t\tlet left;\n\t\tlet paeth;\n\t\tlet upper;\n\t\tlet upperLeft;\n\t\twhile ( pos < length ) {\n\t\t\tswitch ( data[pos++] ) {\n\t\t\t\tcase 0:\n\t\t\t\t\tfor ( i = _i = 0; _i < scanlineLength; i = _i += 1 ) {\n\t\t\t\t\t\tpixels[c++] = data[pos++];\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 1:\n\t\t\t\t\tfor ( i = _j = 0; _j < scanlineLength; i = _j += 1 ) {\n\t\t\t\t\t\tbyte = data[pos++];\n\t\t\t\t\t\tleft = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n\t\t\t\t\t\tpixels[c++] = ( byte + left ) % 256;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 2:\n\t\t\t\t\tfor ( i = _k = 0; _k < scanlineLength; i = _k += 1 ) {\n\t\t\t\t\t\tbyte = data[pos++];\n\t\t\t\t\t\tcol = ( i - ( i % pixelBytes ) ) / pixelBytes;\n\t\t\t\t\t\tupper = row && pixels[( row - 1 ) * scanlineLength + col * pixelBytes + ( i % pixelBytes )];\n\t\t\t\t\t\tpixels[c++] = ( upper + byte ) % 256;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 3:\n\t\t\t\t\tfor ( i = _l = 0; _l < scanlineLength; i = _l += 1 ) {\n\t\t\t\t\t\tbyte = data[pos++];\n\t\t\t\t\t\tcol = ( i - ( i % pixelBytes ) ) / pixelBytes;\n\t\t\t\t\t\tleft = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n\t\t\t\t\t\tupper = row && pixels[( row - 1 ) * scanlineLength + col * pixelBytes + ( i % pixelBytes )];\n\t\t\t\t\t\tpixels[c++] = ( byte + Math.floor( ( left + upper ) / 2 ) ) % 256;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tfor ( i = _m = 0; _m < scanlineLength; i = _m += 1 ) {\n\t\t\t\t\t\tbyte = data[pos++];\n\t\t\t\t\t\tcol = ( i - ( i % pixelBytes ) ) / pixelBytes;\n\t\t\t\t\t\tleft = i < pixelBytes ? 0 : pixels[c - pixelBytes];\n\t\t\t\t\t\tif ( row === 0 ) {\n\t\t\t\t\t\t\tupper = upperLeft = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tupper = pixels[( row - 1 ) * scanlineLength + col * pixelBytes + ( i % pixelBytes )];\n\t\t\t\t\t\t\tupperLeft = col && pixels[( row - 1 ) * scanlineLength + ( col - 1 ) * pixelBytes + ( i % pixelBytes )];\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst p = left + upper - upperLeft;\n\t\t\t\t\t\tconst pa = Math.abs(p - left);\n\t\t\t\t\t\tconst pb = Math.abs(p - upper);\n\t\t\t\t\t\tconst pc = Math.abs(p - upperLeft);\n\t\t\t\t\t\tif ( pa <= pb && pa <= pc ) {\n\t\t\t\t\t\t\tpaeth = left;\n\t\t\t\t\t\t} else if ( pb <= pc ) {\n\t\t\t\t\t\t\tpaeth = upper;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tpaeth = upperLeft;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpixels[c++] = (byte + paeth) % 256;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\terror( 'Invalid filter algorithm: ' + data[pos - 1] );\n\t\t\t}\n\t\t\trow++;\n\t\t}\n\t\treturn pixels;\n\t}\n\tdecodePalette () {\n\t\tconst palette = this.palette;\n\t\tconst transparency = this.transparency.indexed || [ ];\n\t\tconst result = new Uint8Array( ( transparency.length || 0 ) + palette.length );\n\t\tpalette.length;\n\t\tlet pos = 0;\n\t\tlet c = 0;\n\t\tlet i, _i, _ref, _ref1;\n\t\tfor ( i = _i = 0, _ref = palette.length; _i < _ref; i = _i += 3 ) {\n\t\t\tresult[pos++] = palette[i];\n\t\t\tresult[pos++] = palette[i + 1];\n\t\t\tresult[pos++] = palette[i + 2];\n\t\t\tresult[pos++] = ( _ref1 = transparency[c++] ) != null ? _ref1 : 255;\n\t\t}\n\t\treturn result;\n\t}\n\tdecodeFrames () {\n\t\tif ( this.animation) {\n\t\t\tconst frameCount = this.animation.frames.length;\n\t\t\tconst decodedFrames = [ ];\n\t\t\tfor ( let i = 0; i < frameCount; ++i ) {\n\t\t\t\tconst frame = this.animation.frames[i];\n\t\t\t\tdecodedFrames[i] = this.decodePixels( new Uint8Array( frame.data ) );\n\t\t\t}\n\t\t\treturn decodedFrames;\n\t\t}\n\t}\n}\n\nfunction fromURL ( url ) {\n\treturn loadPNG( url );\n}\nfunction fromImageData ( imageData ) {\n\treturn new Promise ( ( resolve, reject ) => {\n\t\ttry {\n\t\t\tresolve( new PNG( imageData.data || imageData ) );\n\t\t} catch ( err ) {\n\t\t\treject( err );\n\t\t}\n\t} );\n}\n\nexport { fromImageData, fromURL, toImageData, PNG };","import { fromImageData, PNG } from './png_decoder';\n\nasync function getImageFromURL(url: string) {\n const img = new Image();\n await new Promise(r => (img.onload=r, img.src=url));\n return img\n}\n\nfunction arrayBufferToBase64(buffer: ArrayBuffer) {\n var binary = '';\n var bytes = new Uint8Array( buffer );\n var len = bytes.byteLength;\n for (var i = 0; i < len; i++) {\n binary += String.fromCharCode( bytes[ i ] );\n }\n return window.btoa( binary );\n}\n\nexport function decodePNG(pngBytes: Uint8Array, pixelsPerByte = 8) {\n const pngData = new PNG(pngBytes) as any\n const canvas = document.createElement('canvas')\n\n const data: Uint8Array = pngData.decodePixels()\n \n canvas.width = pngData.width\n canvas.height = pngData.height\n\n const ctx = canvas.getContext('2d', { willReadFrequently: true })\n const imgd = ctx.getImageData(0, 0, canvas.width, canvas.height)\n const pix = imgd.data\n\n // Loops through all of the pixels and modifies the components.\n for (let i = 0; i < pix.length; i += 4) {\n const pixelI = i / 4 // RGBA -> W\n let color = 255\n const dataPixelByteI = Math.floor(pixelI / pixelsPerByte) // 8 pixels per byte\n const pixelByte = data[dataPixelByteI]\n\n if (pixelsPerByte === 8) { // 1 bit image\n const inByteI = 7 - pixelI % 8\n // use a mask to get the n'th bit in the byte and check if it is set\n const isBitSet = (pixelByte & (1 << inByteI)) == 0\n \n color = isBitSet ? 0 : 255\n } else color = pixelByte\n\n pix[i] = color // r\n pix[i + 1] = color // g\n pix[i + 2] = color // b\n pix[i + 3] = 255; // alpha\n }\n\n ctx.putImageData(imgd, 0, 0)\n return canvas\n}","// Fetching utils\nimport { decode } from \"@msgpack/msgpack\";\nimport { log, log2screen } from \"./utils\";\nimport { reviveMaskFromTar, polygonReviver } from \"../polygon/reviveUtils\";\nimport { HeatmapData, Label, MaskData, PolygonsData } from '../types'\nimport { PolygonContainer } from \"../polygon/PolygonContainer\";\nimport { decodePNG } from \"../mask/pngDecoder/decodePNG\";\n\n/**\n * Fetches and msgpack unpacks a data stream\n * \n * @param url URL of the mspack data\n * @returns A decoded MSGpack object, still needs to be revived into their respective classes\n */\nasync function fetchAndUnpack(url: string) {\n const rawResp = await fetch(url)\n if (rawResp.headers.get(\"Content-Type\") !== 'application/msgpack') {\n throw new Error('Incorrect content type returned')\n }\n let reponseBlob = await rawResp.arrayBuffer()\n const result = decode(reponseBlob)\n\n // Do a manual GC call for IE11\n if (typeof window['CollectGarbage'] == 'function') {\n (window as any).CollectGarbage()\n log('IE11: Cleared memory')\n }\n return result\n}\n\n/**\n * Fetches and parses all the available density maps. Progressively, so the coarsest loads fastest.\n * \n * @param uuid Annotation code used in fetch\n \n * @returns An array of density PNG promises\n */\nfunction fetchLookupTablesProgressively(uuid: string) {\n // Progressively download higher resolution density lookup tables\n log2screen('Start lookup fetches')\n const coarse = fetchDensityPNG(uuid, 256)\n coarse.then(() => log2screen('Done with course'))\n \n const fine = fetchDensityPNG(uuid, 32)\n fine.then(() => log2screen('Done with fine fetchLookupPNG'))\n\n const densityTables = [coarse, fine]\n\n return densityTables\n}\n\n/**\n * Fetches a density PNG from the server, parses it, and returns the PNG canvas\n * \n * @param code Annotation code used in fetch\n * @param size Number of original pixels corresponding to 1 density map pixel\n * @returns \n */\nasync function fetchDensityPNG(uuid: string, size: number) {\n const annoUrlPrefix = `/Image/HighPerformanceDataFile?uuid=${uuid}`\n const url = annoUrlPrefix + `&fileName=lookup-tables/density_${size}px.png`\n\n const respBody = await fetch(url).then(r => r.arrayBuffer())\n const pngCanvas = decodePNG(new Uint8Array(respBody), 1)\n if (isCanvasBroken(pngCanvas)) throw new Error('Broken canvas, unable to set imgData')\n return {\n canvas: pngCanvas,\n tile_size: size\n }\n}\n\n/**\n * iOS webkit does not support canvases with more than 16.777.216 pixels. (4096x4096) \n * Instead of throwing an error, it will simply be an immutable white canvas. This function\n * checks if this is the case, so we can throw an error ourselves.\n * \n * https://pqina.nl/blog/canvas-area-exceeds-the-maximum-limit/\n * \n * @param canvas HTML canvas that is potentially non-mutable \n * @returns Boolean whether the canvas is immutable\n */\nfunction isCanvasBroken(canvas: HTMLCanvasElement) {\n // Get the pixel data for the most top left pixel and try to mutate it.\n const ctx = canvas.getContext('2d')\n const imgData = ctx.getImageData(0, 0, 1, 1)\n const before = imgData.data[0] !== 255 ? imgData.data[0] : 253\n imgData.data[0] = before + 1\n ctx.putImageData(imgData, 0, 0)\n const newImgData = ctx.getImageData(0, 0, 1, 1)\n\n if (newImgData.data[0] === before && before === 0) return true\n if (newImgData.data[0] === before) {\n console.warn('Weird, unable to change pixel but not 0')\n return true\n } else return false\n}\n\n/**\n * Fetches and revives mask (sometimes called points) data from the server.\n * The TAR file contains images for each 256x256px tile that has any points.\n * \n * @param uuid Annotation code used in fetch\n * @returns MaskData\n */\nasync function fetchMaskItemData(uuid: string) {\n log2screen('Start with mask itemData')\n // Fetch and revive the masksArray data\n const resp = await fetch(`/Image/HighPerformanceDataFile?uuid=${uuid}&fileName=masks.tar.gz`)\n if (resp.headers.get(\"Content-Type\") !== 'application/x-tar') {\n throw new Error('Incorrect content type returned')\n }\n\n const tarBuf = await resp.arrayBuffer()\n log2screen('Done with mask tar itemData fetch: ' + tarBuf.byteLength)\n const maskArr = reviveMaskFromTar(new Uint8Array(tarBuf))\n log2screen(`Done with mask revive`)\n\n return {\n masks: maskArr,\n tileWidth: 256,\n tileHeight: 256\n }\n}\n\n/**\n * Fetches and revives a polygonContainer from the server \n * \n * @param uuid Annotation code used in fetch\n * @param folder Which folder in the annotation ZIP to retrieve the polygons information from\n * @returns PolygonContainer\n */\nasync function fetchPolygonsAndRevive(uuid: string, folder: string) {\n const prefix = `/Image/HighPerformanceDataFile?uuid=${uuid}&fileName=${folder}/`\n try {\n // Fetch all the information needed to revive a polygonContainer from the server\n const promises = [\n fetch(prefix + 'negative_polygons.json').then(r => r.json()),\n fetchAndUnpack(prefix + 'tile_polygons_i.msgpack.br'),\n fetchAndUnpack(prefix + 'big_tile_polygons_i.msgpack.br'),\n fetch(prefix + 'encoded_polygons.bin.br').then(r => r.arrayBuffer())\n ]\n const results = await Promise.all(promises)\n const negativePolygons = results[0] as any\n const tilePolygonIndices = results[1] as any\n const bigPolygonIndices = results[2] as any\n\n const encodedPolygonsBuf = results[3] as ArrayBuffer\n const encodedPolygons = new Uint8Array(encodedPolygonsBuf)\n \n const polygonContainer = polygonReviver(negativePolygons, tilePolygonIndices, bigPolygonIndices, encodedPolygons)\n return polygonContainer\n } catch(err) {\n console.error(\"Failed to revive polygons: \", err)\n return new PolygonContainer()\n }\n}\n\nasync function fetchHeatmapData(uuid: string) {\n const prefix = `/Image/HighPerformanceDataFile?uuid=${uuid}`\n const metadata = await fetch(prefix + '&fileName=heatmap_metadata.json').then(r => r.json())\n const {x, y, sizePerPixel} = metadata\n const pngBytes = await fetch(prefix + '&fileName=heatmap.png').then(r => r.arrayBuffer())\n return {\n img: {\n pngBytes\n },\n sizePerPixel,\n x,\n y\n }\n}\n\nasync function fetchLabels(uuid: string) {\n const prefix = `/Image/HighPerformanceDataFile?uuid=${uuid}`\n const labelsFetch = await fetch(prefix + '&fileName=labels.json')\n if (labelsFetch.status !== 200) return []\n const labels: Label[] = await labelsFetch.json()\n if (!Array.isArray(labels)) return []\n return labels\n}\n\n/**\n * Fetches, unpacks and revives the anno2 data for a uuid\n * \n * @param uuid The uuid for the anno2 data, is send to the server to retrieve their files\n * @returns A promise resulting in lookuptables and a revived item data promise\n */\nexport async function getData(uuid: string) {\n log2screen(`Starting fetch for uuid: ${uuid}`)\n const annoUrlPrefix = `/Image/HighPerformanceDataFile?uuid=${uuid}`\n const systemMetadata = await fetch(annoUrlPrefix + '&fileName=system_metadata.json').then(r => r.json())\n const type: 'points' | 'polygons' | 'heatmap' | 'circles' = systemMetadata.type\n const metadata = await fetch(annoUrlPrefix + '&fileName=user_metadata.json').then(r => r.json())\n const labels: Label[] = type === 'polygons' ? await fetchLabels(uuid) : []\n\n // get the density lookup tables, course to fine\n const densityTablesProms = type !== 'heatmap' ? fetchLookupTablesProgressively(uuid) : []\n \n // Fetch the itemData after all the density tables are finished\n const itemDataProm: Promise = Promise.allSettled(densityTablesProms).then(async () => {\n if (type === 'points') return fetchMaskItemData(uuid)\n else if (type === 'circles') return fetchMaskItemData(uuid)\n else if (type === 'polygons') return fetchPolygonsAndRevive(uuid, 'polygon_container')\n else if (type === 'heatmap') return fetchHeatmapData(uuid)\n else throw new Error('Unknown type')\n })\n\n\n const data = {\n metadata,\n lookupTableProms: densityTablesProms,\n itemDataProm,\n labels,\n type,\n numItems: systemMetadata.numItems as number | null\n }\n log2screen(`Done fetching: ${uuid}: ${systemMetadata.version} ${systemMetadata.type}`)\n\n return data\n}\n","/**\n * The Turbo Color Map. \n * Containing for index [0 .. 255] an [r, g, b] array. r, g or b being a value between 0 and 1.\n * \n * https://ai.googleblog.com/2019/08/turbo-improved-rainbow-colormap-for.html\n */\nexport const turboColorMap = [\n [\n 0.18995,\n 0.07176,\n 0.23217\n ],\n [\n 0.19483,\n 0.08339,\n 0.26149\n ],\n [\n 0.19956,\n 0.09498,\n 0.29024\n ],\n [\n 0.20415,\n 0.10652,\n 0.31844\n ],\n [\n 0.20860,\n 0.11802,\n 0.34607\n ],\n [\n 0.21291,\n 0.12947,\n 0.37314\n ],\n [\n 0.21708,\n 0.14087,\n 0.39964\n ],\n [\n 0.22111,\n 0.15223,\n 0.42558\n ],\n [\n 0.22500,\n 0.16354,\n 0.45096\n ],\n [\n 0.22875,\n 0.17481,\n 0.47578\n ],\n [\n 0.23236,\n 0.18603,\n 0.50004\n ],\n [\n 0.23582,\n 0.19720,\n 0.52373\n ],\n [\n 0.23915,\n 0.20833,\n 0.54686\n ],\n [\n 0.24234,\n 0.21941,\n 0.56942\n ],\n [\n 0.24539,\n 0.23044,\n 0.59142\n ],\n [\n 0.24830,\n 0.24143,\n 0.61286\n ],\n [\n 0.25107,\n 0.25237,\n 0.63374\n ],\n [\n 0.25369,\n 0.26327,\n 0.65406\n ],\n [\n 0.25618,\n 0.27412,\n 0.67381\n ],\n [\n 0.25853,\n 0.28492,\n 0.69300\n ],\n [\n 0.26074,\n 0.29568,\n 0.71162\n ],\n [\n 0.26280,\n 0.30639,\n 0.72968\n ],\n [\n 0.26473,\n 0.31706,\n 0.74718\n ],\n [\n 0.26652,\n 0.32768,\n 0.76412\n ],\n [\n 0.26816,\n 0.33825,\n 0.78050\n ],\n [\n 0.26967,\n 0.34878,\n 0.79631\n ],\n [\n 0.27103,\n 0.35926,\n 0.81156\n ],\n [\n 0.27226,\n 0.36970,\n 0.82624\n ],\n [\n 0.27334,\n 0.38008,\n 0.84037\n ],\n [\n 0.27429,\n 0.39043,\n 0.85393\n ],\n [\n 0.27509,\n 0.40072,\n 0.86692\n ],\n [\n 0.27576,\n 0.41097,\n 0.87936\n ],\n [\n 0.27628,\n 0.42118,\n 0.89123\n ],\n [\n 0.27667,\n 0.43134,\n 0.90254\n ],\n [\n 0.27691,\n 0.44145,\n 0.91328\n ],\n [\n 0.27701,\n 0.45152,\n 0.92347\n ],\n [\n 0.27698,\n 0.46153,\n 0.93309\n ],\n [\n 0.27680,\n 0.47151,\n 0.94214\n ],\n [\n 0.27648,\n 0.48144,\n 0.95064\n ],\n [\n 0.27603,\n 0.49132,\n 0.95857\n ],\n [\n 0.27543,\n 0.50115,\n 0.96594\n ],\n [\n 0.27469,\n 0.51094,\n 0.97275\n ],\n [\n 0.27381,\n 0.52069,\n 0.97899\n ],\n [\n 0.27273,\n 0.53040,\n 0.98461\n ],\n [\n 0.27106,\n 0.54015,\n 0.98930\n ],\n [\n 0.26878,\n 0.54995,\n 0.99303\n ],\n [\n 0.26592,\n 0.55979,\n 0.99583\n ],\n [\n 0.26252,\n 0.56967,\n 0.99773\n ],\n [\n 0.25862,\n 0.57958,\n 0.99876\n ],\n [\n 0.25425,\n 0.58950,\n 0.99896\n ],\n [\n 0.24946,\n 0.59943,\n 0.99835\n ],\n [\n 0.24427,\n 0.60937,\n 0.99697\n ],\n [\n 0.23874,\n 0.61931,\n 0.99485\n ],\n [\n 0.23288,\n 0.62923,\n 0.99202\n ],\n [\n 0.22676,\n 0.63913,\n 0.98851\n ],\n [\n 0.22039,\n 0.64901,\n 0.98436\n ],\n [\n 0.21382,\n 0.65886,\n 0.97959\n ],\n [\n 0.20708,\n 0.66866,\n 0.97423\n ],\n [\n 0.20021,\n 0.67842,\n 0.96833\n ],\n [\n 0.19326,\n 0.68812,\n 0.96190\n ],\n [\n 0.18625,\n 0.69775,\n 0.95498\n ],\n [\n 0.17923,\n 0.70732,\n 0.94761\n ],\n [\n 0.17223,\n 0.71680,\n 0.93981\n ],\n [\n 0.16529,\n 0.72620,\n 0.93161\n ],\n [\n 0.15844,\n 0.73551,\n 0.92305\n ],\n [\n 0.15173,\n 0.74472,\n 0.91416\n ],\n [\n 0.14519,\n 0.75381,\n 0.90496\n ],\n [\n 0.13886,\n 0.76279,\n 0.89550\n ],\n [\n 0.13278,\n 0.77165,\n 0.88580\n ],\n [\n 0.12698,\n 0.78037,\n 0.87590\n ],\n [\n 0.12151,\n 0.78896,\n 0.86581\n ],\n [\n 0.11639,\n 0.79740,\n 0.85559\n ],\n [\n 0.11167,\n 0.80569,\n 0.84525\n ],\n [\n 0.10738,\n 0.81381,\n 0.83484\n ],\n [\n 0.10357,\n 0.82177,\n 0.82437\n ],\n [\n 0.10026,\n 0.82955,\n 0.81389\n ],\n [\n 0.09750,\n 0.83714,\n 0.80342\n ],\n [\n 0.09532,\n 0.84455,\n 0.79299\n ],\n [\n 0.09377,\n 0.85175,\n 0.78264\n ],\n [\n 0.09287,\n 0.85875,\n 0.77240\n ],\n [\n 0.09267,\n 0.86554,\n 0.76230\n ],\n [\n 0.09320,\n 0.87211,\n 0.75237\n ],\n [\n 0.09451,\n 0.87844,\n 0.74265\n ],\n [\n 0.09662,\n 0.88454,\n 0.73316\n ],\n [\n 0.09958,\n 0.89040,\n 0.72393\n ],\n [\n 0.10342,\n 0.89600,\n 0.71500\n ],\n [\n 0.10815,\n 0.90142,\n 0.70599\n ],\n [\n 0.11374,\n 0.90673,\n 0.69651\n ],\n [\n 0.12014,\n 0.91193,\n 0.68660\n ],\n [\n 0.12733,\n 0.91701,\n 0.67627\n ],\n [\n 0.13526,\n 0.92197,\n 0.66556\n ],\n [\n 0.14391,\n 0.92680,\n 0.65448\n ],\n [\n 0.15323,\n 0.93151,\n 0.64308\n ],\n [\n 0.16319,\n 0.93609,\n 0.63137\n ],\n [\n 0.17377,\n 0.94053,\n 0.61938\n ],\n [\n 0.18491,\n 0.94484,\n 0.60713\n ],\n [\n 0.19659,\n 0.94901,\n 0.59466\n ],\n [\n 0.20877,\n 0.95304,\n 0.58199\n ],\n [\n 0.22142,\n 0.95692,\n 0.56914\n ],\n [\n 0.23449,\n 0.96065,\n 0.55614\n ],\n [\n 0.24797,\n 0.96423,\n 0.54303\n ],\n [\n 0.26180,\n 0.96765,\n 0.52981\n ],\n [\n 0.27597,\n 0.97092,\n 0.51653\n ],\n [\n 0.29042,\n 0.97403,\n 0.50321\n ],\n [\n 0.30513,\n 0.97697,\n 0.48987\n ],\n [\n 0.32006,\n 0.97974,\n 0.47654\n ],\n [\n 0.33517,\n 0.98234,\n 0.46325\n ],\n [\n 0.35043,\n 0.98477,\n 0.45002\n ],\n [\n 0.36581,\n 0.98702,\n 0.43688\n ],\n [\n 0.38127,\n 0.98909,\n 0.42386\n ],\n [\n 0.39678,\n 0.99098,\n 0.41098\n ],\n [\n 0.41229,\n 0.99268,\n 0.39826\n ],\n [\n 0.42778,\n 0.99419,\n 0.38575\n ],\n [\n 0.44321,\n 0.99551,\n 0.37345\n ],\n [\n 0.45854,\n 0.99663,\n 0.36140\n ],\n [\n 0.47375,\n 0.99755,\n 0.34963\n ],\n [\n 0.48879,\n 0.99828,\n 0.33816\n ],\n [\n 0.50362,\n 0.99879,\n 0.32701\n ],\n [\n 0.51822,\n 0.99910,\n 0.31622\n ],\n [\n 0.53255,\n 0.99919,\n 0.30581\n ],\n [\n 0.54658,\n 0.99907,\n 0.29581\n ],\n [\n 0.56026,\n 0.99873,\n 0.28623\n ],\n [\n 0.57357,\n 0.99817,\n 0.27712\n ],\n [\n 0.58646,\n 0.99739,\n 0.26849\n ],\n [\n 0.59891,\n 0.99638,\n 0.26038\n ],\n [\n 0.61088,\n 0.99514,\n 0.25280\n ],\n [\n 0.62233,\n 0.99366,\n 0.24579\n ],\n [\n 0.63323,\n 0.99195,\n 0.23937\n ],\n [\n 0.64362,\n 0.98999,\n 0.23356\n ],\n [\n 0.65394,\n 0.98775,\n 0.22835\n ],\n [\n 0.66428,\n 0.98524,\n 0.22370\n ],\n [\n 0.67462,\n 0.98246,\n 0.21960\n ],\n [\n 0.68494,\n 0.97941,\n 0.21602\n ],\n [\n 0.69525,\n 0.97610,\n 0.21294\n ],\n [\n 0.70553,\n 0.97255,\n 0.21032\n ],\n [\n 0.71577,\n 0.96875,\n 0.20815\n ],\n [\n 0.72596,\n 0.96470,\n 0.20640\n ],\n [\n 0.73610,\n 0.96043,\n 0.20504\n ],\n [\n 0.74617,\n 0.95593,\n 0.20406\n ],\n [\n 0.75617,\n 0.95121,\n 0.20343\n ],\n [\n 0.76608,\n 0.94627,\n 0.20311\n ],\n [\n 0.77591,\n 0.94113,\n 0.20310\n ],\n [\n 0.78563,\n 0.93579,\n 0.20336\n ],\n [\n 0.79524,\n 0.93025,\n 0.20386\n ],\n [\n 0.80473,\n 0.92452,\n 0.20459\n ],\n [\n 0.81410,\n 0.91861,\n 0.20552\n ],\n [\n 0.82333,\n 0.91253,\n 0.20663\n ],\n [\n 0.83241,\n 0.90627,\n 0.20788\n ],\n [\n 0.84133,\n 0.89986,\n 0.20926\n ],\n [\n 0.85010,\n 0.89328,\n 0.21074\n ],\n [\n 0.85868,\n 0.88655,\n 0.21230\n ],\n [\n 0.86709,\n 0.87968,\n 0.21391\n ],\n [\n 0.87530,\n 0.87267,\n 0.21555\n ],\n [\n 0.88331,\n 0.86553,\n 0.21719\n ],\n [\n 0.89112,\n 0.85826,\n 0.21880\n ],\n [\n 0.89870,\n 0.85087,\n 0.22038\n ],\n [\n 0.90605,\n 0.84337,\n 0.22188\n ],\n [\n 0.91317,\n 0.83576,\n 0.22328\n ],\n [\n 0.92004,\n 0.82806,\n 0.22456\n ],\n [\n 0.92666,\n 0.82025,\n 0.22570\n ],\n [\n 0.93301,\n 0.81236,\n 0.22667\n ],\n [\n 0.93909,\n 0.80439,\n 0.22744\n ],\n [\n 0.94489,\n 0.79634,\n 0.22800\n ],\n [\n 0.95039,\n 0.78823,\n 0.22831\n ],\n [\n 0.95560,\n 0.78005,\n 0.22836\n ],\n [\n 0.96049,\n 0.77181,\n 0.22811\n ],\n [\n 0.96507,\n 0.76352,\n 0.22754\n ],\n [\n 0.96931,\n 0.75519,\n 0.22663\n ],\n [\n 0.97323,\n 0.74682,\n 0.22536\n ],\n [\n 0.97679,\n 0.73842,\n 0.22369\n ],\n [\n 0.98000,\n 0.73000,\n 0.22161\n ],\n [\n 0.98289,\n 0.72140,\n 0.21918\n ],\n [\n 0.98549,\n 0.71250,\n 0.21650\n ],\n [\n 0.98781,\n 0.70330,\n 0.21358\n ],\n [\n 0.98986,\n 0.69382,\n 0.21043\n ],\n [\n 0.99163,\n 0.68408,\n 0.20706\n ],\n [\n 0.99314,\n 0.67408,\n 0.20348\n ],\n [\n 0.99438,\n 0.66386,\n 0.19971\n ],\n [\n 0.99535,\n 0.65341,\n 0.19577\n ],\n [\n 0.99607,\n 0.64277,\n 0.19165\n ],\n [\n 0.99654,\n 0.63193,\n 0.18738\n ],\n [\n 0.99675,\n 0.62093,\n 0.18297\n ],\n [\n 0.99672,\n 0.60977,\n 0.17842\n ],\n [\n 0.99644,\n 0.59846,\n 0.17376\n ],\n [\n 0.99593,\n 0.58703,\n 0.16899\n ],\n [\n 0.99517,\n 0.57549,\n 0.16412\n ],\n [\n 0.99419,\n 0.56386,\n 0.15918\n ],\n [\n 0.99297,\n 0.55214,\n 0.15417\n ],\n [\n 0.99153,\n 0.54036,\n 0.14910\n ],\n [\n 0.98987,\n 0.52854,\n 0.14398\n ],\n [\n 0.98799,\n 0.51667,\n 0.13883\n ],\n [\n 0.98590,\n 0.50479,\n 0.13367\n ],\n [\n 0.98360,\n 0.49291,\n 0.12849\n ],\n [\n 0.98108,\n 0.48104,\n 0.12332\n ],\n [\n 0.97837,\n 0.46920,\n 0.11817\n ],\n [\n 0.97545,\n 0.45740,\n 0.11305\n ],\n [\n 0.97234,\n 0.44565,\n 0.10797\n ],\n [\n 0.96904,\n 0.43399,\n 0.10294\n ],\n [\n 0.96555,\n 0.42241,\n 0.09798\n ],\n [\n 0.96187,\n 0.41093,\n 0.09310\n ],\n [\n 0.95801,\n 0.39958,\n 0.08831\n ],\n [\n 0.95398,\n 0.38836,\n 0.08362\n ],\n [\n 0.94977,\n 0.37729,\n 0.07905\n ],\n [\n 0.94538,\n 0.36638,\n 0.07461\n ],\n [\n 0.94084,\n 0.35566,\n 0.07031\n ],\n [\n 0.93612,\n 0.34513,\n 0.06616\n ],\n [\n 0.93125,\n 0.33482,\n 0.06218\n ],\n [\n 0.92623,\n 0.32473,\n 0.05837\n ],\n [\n 0.92105,\n 0.31489,\n 0.05475\n ],\n [\n 0.91572,\n 0.30530,\n 0.05134\n ],\n [\n 0.91024,\n 0.29599,\n 0.04814\n ],\n [\n 0.90463,\n 0.28696,\n 0.04516\n ],\n [\n 0.89888,\n 0.27824,\n 0.04243\n ],\n [\n 0.89298,\n 0.26981,\n 0.03993\n ],\n [\n 0.88691,\n 0.26152,\n 0.03753\n ],\n [\n 0.88066,\n 0.25334,\n 0.03521\n ],\n [\n 0.87422,\n 0.24526,\n 0.03297\n ],\n [\n 0.86760,\n 0.23730,\n 0.03082\n ],\n [\n 0.86079,\n 0.22945,\n 0.02875\n ],\n [\n 0.85380,\n 0.22170,\n 0.02677\n ],\n [\n 0.84662,\n 0.21407,\n 0.02487\n ],\n [\n 0.83926,\n 0.20654,\n 0.02305\n ],\n [\n 0.83172,\n 0.19912,\n 0.02131\n ],\n [\n 0.82399,\n 0.19182,\n 0.01966\n ],\n [\n 0.81608,\n 0.18462,\n 0.01809\n ],\n [\n 0.80799,\n 0.17753,\n 0.01660\n ],\n [\n 0.79971,\n 0.17055,\n 0.01520\n ],\n [\n 0.79125,\n 0.16368,\n 0.01387\n ],\n [\n 0.78260,\n 0.15693,\n 0.01264\n ],\n [\n 0.77377,\n 0.15028,\n 0.01148\n ],\n [\n 0.76476,\n 0.14374,\n 0.01041\n ],\n [\n 0.75556,\n 0.13731,\n 0.00942\n ],\n [\n 0.74617,\n 0.13098,\n 0.00851\n ],\n [\n 0.73661,\n 0.12477,\n 0.00769\n ],\n [\n 0.72686,\n 0.11867,\n 0.00695\n ],\n [\n 0.71692,\n 0.11268,\n 0.00629\n ],\n [\n 0.70680,\n 0.10680,\n 0.00571\n ],\n [\n 0.69650,\n 0.10102,\n 0.00522\n ],\n [\n 0.68602,\n 0.09536,\n 0.00481\n ],\n [\n 0.67535,\n 0.08980,\n 0.00449\n ],\n [\n 0.66449,\n 0.08436,\n 0.00424\n ],\n [\n 0.65345,\n 0.07902,\n 0.00408\n ],\n [\n 0.64223,\n 0.07380,\n 0.00401\n ],\n [\n 0.63082,\n 0.06868,\n 0.00401\n ],\n [\n 0.61923,\n 0.06367,\n 0.00410\n ],\n [\n 0.60746,\n 0.05878,\n 0.00427\n ],\n [\n 0.59550,\n 0.05399,\n 0.00453\n ],\n [\n 0.58336,\n 0.04931,\n 0.00486\n ],\n [\n 0.57103,\n 0.04474,\n 0.00529\n ],\n [\n 0.55852,\n 0.04028,\n 0.00579\n ],\n [\n 0.54583,\n 0.03593,\n 0.00638\n ],\n [\n 0.53295,\n 0.03169,\n 0.00705\n ],\n [\n 0.51989,\n 0.02756,\n 0.00780\n ],\n [\n 0.50664,\n 0.02354,\n 0.00863\n ],\n [\n 0.49321,\n 0.01963,\n 0.00955\n ],\n [\n 0.47960,\n 0.01583,\n 0.01055\n ]\n]","import { decodePNG } from \"../mask/pngDecoder/decodePNG\";\nimport { turboColorMap } from \"../common/turboColorMap\";\nimport { ColorOptions, ContinueFunction, HeatmapData } from \"../types\"\nimport { addBorderToCanvas, log2canvas, SHOULD_SHOW_STATS } from \"../common/utils\";\n\n/**\n * OpenSeaDragon tile based filter to draw a heatmap/any greyscale image in a OSD tile-based manner.\n * \n * @param ctx Tile rendering context\n * @param next Function that gets called when done\n * @param tile Current OpenSeadragon tile object\n * @param heatmapData Data that is used to (potentially) overlay this tile. Not modified.\n */\nexport function heatmapFilter(\n ctx: CanvasRenderingContext2D,\n next: ContinueFunction,\n tile: OpenSeadragon.Tile,\n heatmapData: HeatmapData\n) {\n ctx.save()\n // First do some calculations on where the location of this tile is in the WSI, and it's zoom level and size etc.\n const viewer = ((window as any).viewer as OpenSeadragon.Viewer)\n const viewport = viewer.viewport\n // Get bounds of this tile\n const vc2ic = viewport.viewportToImageCoordinates.bind(viewport) // function to convert viewport to universal image coordinates\n const tileTopLeft: OpenSeadragon.Point = vc2ic(tile.bounds.getTopLeft())\n const tileSize: OpenSeadragon.Point = vc2ic(tile.bounds.getSize())\n\n // @ts-ignore Ignore invocation of OpenSeaDragon global\n const curTileRect: OpenSeadragon.Rect = new OpenSeadragon.Rect(tileTopLeft.x, tileTopLeft.y, tileSize.x, tileSize.y)\n\n // @ts-ignore Ignore invocation of OpenSeaDragon global\n const heatMapRect: OpenSeadragon.Rect = new OpenSeadragon.Rect(\n heatmapData.x, heatmapData.y,\n heatmapData.img.canvas.width * heatmapData.sizePerPixel,\n heatmapData.img.canvas.height * heatmapData.sizePerPixel\n )\n\n // Now copy over a part of this heatmap to the OpenSeaDragonCTX\n if (hasOverlap(curTileRect, heatMapRect)) {\n drawHeatmap(heatmapData.img.canvas, ctx, curTileRect, heatMapRect)\n }\n\n if (SHOULD_SHOW_STATS) {\n addBorderToCanvas(ctx, 3)\n log2canvas(ctx, `Z ${tile.level} X ${tile.x} Y ${tile.y}`)\n }\n ctx.restore()\n next()\n}\n\n/**\n * Draws a part of the heatmap in a tile. Uses some calculations to determine which part\n * to copy over, to which part of the tile.\n * See https://developer.mozilla.org/en-US/docs/Web/API/CanvasRenderingContext2D/drawImage\n * for the relevant parameters we are calculating.\n * \n * @param heatmap Canvas of a image that will get overlayed on this tile\n * @param tileCtx The Rendering context of the tile that will get modified\n * @param tileBoundBox The bounding box of this tile, in most zoomed in coordinates\n * @param heatmapBoundBox The bounding box of the entire heatmap, in most zoomed in coordinates\n * @param pixelated Whether to draw big \"pixels\" or smooth them, pixels are more accuracte and look better to me\n */\nfunction drawHeatmap(\n heatmap: HTMLCanvasElement,\n tileCtx: CanvasRenderingContext2D,\n tileBoundBox: OpenSeadragon.Rect,\n heatmapBoundBox: OpenSeadragon.Rect,\n pixelated = true\n) {\n // We simply need to calculate all the relevant parameters\n\n // First calculate the ratios this tile is compared to the entire heatmap\n // And add bounds for the tiles that are bigger than the heatmap, or at the edges\n const ratioX = (tileBoundBox.x - heatmapBoundBox.x) / heatmapBoundBox.width\n const boundRatioX = Math.max(Math.min(ratioX, 1), 0)\n const ratioY = (tileBoundBox.y - heatmapBoundBox.y) / heatmapBoundBox.height\n const boundRatioY = Math.max(Math.min(ratioY, 1), 0)\n const ratioWidth = tileBoundBox.width / heatmapBoundBox.width\n const boundRatioWidth = Math.max(Math.min(ratioWidth, 1), 0)\n const ratioHeight = tileBoundBox.height / heatmapBoundBox.height\n const boundRatioHeight = Math.max(Math.min(ratioHeight, 1), 0)\n\n // Calculate the place in the heatmap that we should extract this tile from\n const sourceX = Math.round(boundRatioX * heatmap.width)\n const sourceY = Math.round(boundRatioY * heatmap.height)\n\n const sWidth = Math.round(boundRatioWidth * heatmap.width)\n const sHeight = Math.round(boundRatioHeight * heatmap.height)\n\n // Calculate where in this tile we should place the heatmap. (0, 0) except for big tiles and the edges\n const destX = Math.max(Math.round(((heatmapBoundBox.x - tileBoundBox.x) / tileBoundBox.width) * tileCtx.canvas.width), 0)\n const destY = Math.max(Math.round(((heatmapBoundBox.y - tileBoundBox.y) / tileBoundBox.height) * tileCtx.canvas.height), 0)\n \n // Calculate the size the heatmap is compared to the tile, (256, 256) except for the big tiles and edges\n const destWidth = Math.round(Math.min((heatmapBoundBox.width / tileBoundBox.width), 1) * tileCtx.canvas.width)\n const destHeight = Math.round(Math.min((heatmapBoundBox.height / tileBoundBox.height), 1) * tileCtx.canvas.height)\n \n if (SHOULD_SHOW_STATS) console.log({intermidiate: {ratioX, ratioY, ratioWidth, ratioHeight, tileBoundBox, heatmapBoundBox}, res: {heatmap, sourceX, sourceY, sWidth, sHeight, destX, destY, destWidth, destHeight}})\n\n if (pixelated) tileCtx.imageSmoothingEnabled = false;\n tileCtx.drawImage(heatmap, sourceX, sourceY, sWidth, sHeight, destX, destY, destWidth, destHeight)\n}\n\nexport function calcHeatmapCanvas(pngBytes: ArrayBuffer, colorOptions: ColorOptions) {\n const minValue = colorOptions.threshold != null ? colorOptions.threshold : 1 \n // Load canvas\n const heatmapCanvas = decodePNG(new Uint8Array(pngBytes), 1)\n const heatmapCtx = heatmapCanvas.getContext('2d')\n if (colorOptions.densityFill === 'Turbo') mapColorTurbo(heatmapCtx, colorOptions.fillColor.a * 255, minValue)\n else mapColor(heatmapCtx, [colorOptions.fillColor.r, colorOptions.fillColor.g, colorOptions.fillColor.b, colorOptions.fillColor.a * 255], minValue)\n return heatmapCanvas\n}\n\n/**\n * Util that maps a grayscale image, into a \"grayscale\" colored image.\n * \n * @param ctx Canvas to replace the values from\n * @param positiveColor Color used to calculate the new pixels (r, g, b, [a])\n * @param minValue Threshold value for drawing, below this it is not rendered\n */\nfunction mapColor(ctx: CanvasRenderingContext2D, color: number[], minValue: number) {\n const imgd = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height)\n const pix = imgd.data\n\n // Loops through all of the pixels and modifies the components.\n for (let i = 0; i < pix.length; i += 4) {\n const pixelIntensity = pix[i] / 255 // How white this pixel is from 0-1\n pix[i] = Math.round(color[0] * pixelIntensity)\n pix[i + 1] = Math.round(color[1] * pixelIntensity)\n pix[i + 2] = Math.round(color[2] * pixelIntensity)\n \n const passedAlpha = color.length > 3 ? color[3] : 255\n const alpha = pixelIntensity * 255 <= minValue ? 0 : passedAlpha\n pix[i + 3] = alpha\n }\n\n ctx.putImageData(imgd, 0, 0);\n}\n\n/**\n * Util that maps a grayscale image, into a Turbo colored image.\n * \n * @param ctx Canvas to replace the values from\n * @param positiveColor Color used to calculate the new pixels (r, g, b, [a])\n */\nfunction mapColorTurbo(ctx: CanvasRenderingContext2D, passedAlpha = 255, minValue: number) {\n const imgd = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height)\n const pix = imgd.data\n\n // Loops through all of the pixels and modifies the components.\n for (let i = 0; i < pix.length; i += 4) {\n const pixelIntensity = pix[i]\n const turboI = Math.floor(pix[i])\n const turboColors = turboColorMap[turboI]\n\n pix[i] = Math.floor(turboColors[0] * 256)\n pix[i + 1] = Math.floor(turboColors[1] * 256)\n pix[i + 2] = Math.floor(turboColors[2] * 256)\n \n const alpha = pixelIntensity <= minValue ? 0 : passedAlpha\n pix[i + 3] = alpha\n }\n\n ctx.putImageData(imgd, 0, 0);\n}\n\n/**\n * Checks if 2 rectangles overlap\n * \n * @param rectA First rectangle\n * @param rectB Second rectangle\n * @returns Whether there is any overlap in rectangles\n */\nexport function hasOverlap(rectA: OpenSeadragon.Rect, rectB: OpenSeadragon.Rect) {\n // Calculate the coordinates of the edges of the rectangles\n const r1Left = rectA.x;\n const r1Right = rectA.x + rectA.width;\n const r1Top = rectA.y;\n const r1Bottom = rectA.y + rectA.height;\n\n const r2Left = rectB.x;\n const r2Right = rectB.x + rectB.width;\n const r2Top = rectB.y;\n const r2Bottom = rectB.y + rectB.height;\n\n // Check for overlap\n if (\n r1Left < r2Right &&\n r1Right > r2Left &&\n r1Top < r2Bottom &&\n r1Bottom > r2Top\n ) {\n return true; // Rectangles overlap\n } else {\n return false; // Rectangles do not overlap\n }\n}","import { copyCtx, log } from \"./utils\"\n\nexport class OSDOverlayPlugin {\n viewer: OpenSeadragon.Viewer = null\n allOverlays: {[key: string]: Function} = {}\n disabledOverlays: string[] = []\n\n constructor (viewer: OpenSeadragon.Viewer) {\n this.viewer = viewer\n this.#addHandlers()\n }\n\n /**\n * Add event handler to OSD to trigger the overlays when needed\n */\n #addHandlers() {\n // Apply the overlay handler\n this.viewer.addHandler('tile-drawing', (ev) => {\n const cacheRecord = (this.viewer as any).tileCache.getImageRecord(ev.tile.cacheKey)\n const renderedCtx = ev.rendered as unknown as CanvasRenderingContext2D\n \n // Store the downloaded image if not done before\n if (!cacheRecord.origCtx) cacheRecord.origCtx = copyCtx(renderedCtx)\n // Calculate the newCtx if not done before\n if (!cacheRecord.newCtx) {\n const newCtx = copyCtx(cacheRecord.origCtx, true, true)\n // Apply overlays\n for (const overlay of this.inUseOverlays) {\n try {\n overlay(newCtx, () => {}, ev.tile)\n } catch(err) {\n console.warn('Caught error:', overlay, err)\n // Check if IE11 and not already warned\n if (typeof window['CollectGarbage'] == 'function' && !window['hasWarnedAnno2ie11']) {\n window['hasWarnedAnno2ie11'] = true\n alert('Failed loading annotation due to Internet Explorer 11, please use a more modern browser.')\n }\n }\n }\n // Save the result\n cacheRecord.newCtx = newCtx\n const t0 = performance.now()\n // Draw the overlays over the rendered Ctx\n renderedCtx.drawImage(newCtx.canvas, 0, 0)\n if (performance.now() - t0 > 100) log('Drawing rend ctx', (performance.now() - t0).toFixed(1), cacheRecord.newCtx.canvas)\n }\n })\n }\n\n /**\n * Clear the OSD tile cache, and forces a redrawing of the tiles and overlays\n */\n forceReload() {\n if (this.viewer !== window['viewer'])\n return; // viewer changed or went away, don't draw the anno2\n const viewer = this.viewer as any\n \n for (const key in viewer.tileCache._imagesLoaded) {\n viewer.tileCache._imagesLoaded[key].newCtx = null\n }\n viewer.forceRedraw()\n }\n\n /**\n * Update or add a overlay that runs for each OSD tile\n * \n * @param newOverlay Function that is called for each OSD tile that is loaded\n * @param key an associated key with this function\n */\n updateOverlay(newOverlay: Function, key: string) {\n this.allOverlays[key] = newOverlay\n const overlayIsEnabled = !this.disabledOverlays.includes(key)\n if (overlayIsEnabled) this.forceReload()\n }\n\n /**\n * Get a function that can disable a overlay to run for each OSD tile\n * \n * @param key Which function to disable\n * @returns A function that can disable a overlay\n */\n getOverlayDisabler(key: string) {\n const curOverlayInstance = this\n return function () {\n if (curOverlayInstance.disabledOverlays.includes(key)) return\n\n curOverlayInstance.disabledOverlays.push(key)\n curOverlayInstance.forceReload()\n }\n }\n\n /**\n * Get a function that can be called to enable a overlay after it has been disabled\n * \n * @param key Which function to enable\n * @returns A function that enable a overlay\n */\n getOverlayEnabler(key: string) {\n const curOverlayInstance = this\n return function () {\n if (!curOverlayInstance.disabledOverlays.includes(key)) return\n\n curOverlayInstance.disabledOverlays = curOverlayInstance.disabledOverlays\n .filter(item => item !== key)\n curOverlayInstance.forceReload()\n }\n }\n\n get inUseOverlays() {\n const inUseOverlays: Function[] = []\n for (const [key, value] of Object.entries(this.allOverlays)) {\n if (!this.disabledOverlays.includes(key)) inUseOverlays.push(value)\n }\n return inUseOverlays\n }\n}","/*\n (c) 2017, Vladimir Agafonkin\n Simplify.js, a high-performance JS polyline simplification library\n mourner.github.io/simplify-js\n*/\n/*\nEdited by Bart Grosman to use TypedArrays, which is faster\nthan the native Array implementation\n*/\n\nclass PushAbleUint32Array {\n valuesArray: Uint32Array = new Uint32Array()\n length = 0\n constructor (numMaxEntries: number) {\n this.valuesArray = new Uint32Array(numMaxEntries)\n }\n\n push(entry: number) {\n this.valuesArray[this.length] = entry\n this.length++\n }\n\n squish() {\n return this.valuesArray.slice(0, this.length)\n }\n}\n\n// to suit your point format, run search/replace for '.x' and '.y';\n// for 3D version, see 3d branch (configurability would draw significant performance overhead)\n\n// square distance between 2 points\nfunction getSqDist(points: Uint32Array, p1Index: number, p2Index: number) {\n const dx = points[p1Index] - points[p2Index]\n const dy = points[p1Index + 1] - points[p2Index + 1]\n\n return dx * dx + dy * dy;\n}\n\n// square distance from a point to a segment\nfunction getSqSegDist(pointI: number, p1i: number, p2i: number, points: Uint32Array) {\n\n const px = points[pointI]\n const py = points[pointI + 1]\n const p1x = points[p1i]\n const p1y = points[p1i + 1]\n const p2x = points[p2i]\n const p2y = points[p2i + 1]\n\n let x = p1x\n let y = p1y\n let dx = p2x - x\n let dy = p2y - y\n\n if (dx !== 0 || dy !== 0) {\n var t = ((px - x) * dx + (py - y) * dy) / (dx * dx + dy * dy);\n\n if (t > 1) {\n x = p2x;\n y = p2y;\n } else if (t > 0) {\n x += dx * t;\n y += dy * t;\n }\n }\n\n dx = px - x;\n dy = py - y;\n\n return dx * dx + dy * dy;\n}\n// rest of the code doesn't care about point format\n\n// basic distance-based simplification\nfunction simplifyRadialDist(points: Uint32Array, sqTolerance: number) {\n let prevPointI = 0\n // Allocate a new buffer that could hold all the points, and add the first point\n let newPoints = new Uint32Array(points.length)\n newPoints[0] = points[0]\n newPoints[1] = points[1]\n\n let numNewPoints = 1;\n for (let i = 2; i < points.length; i += 2) {\n const isFarPoint = getSqDist(points, prevPointI, i) > sqTolerance\n const isLastPoint = i == points.length - 2\n\n // console.log(i, prevPointI, getSqDist(points, prevPointI, i), isLastPoint, points.length)\n\n if (isFarPoint || isLastPoint) {\n newPoints[numNewPoints * 2] = points[i]\n newPoints[(numNewPoints * 2) + 1] = points[i + 1]\n prevPointI = i\n numNewPoints++\n }\n }\n\n // Trim newPoints to it's real length\n newPoints = newPoints.slice(0, numNewPoints * 2)\n return newPoints;\n}\n\nfunction simplifyDPStep(points: Uint32Array, firstI: number, lastI: number, sqTolerance: number, simplified: PushAbleUint32Array) {\n let maxSqDist = sqTolerance\n let farPointIndex: number;\n\n for (let i = firstI + 2; i < lastI; i += 2) {\n const sqDist = getSqSegDist(i, firstI, lastI, points);\n\n if (sqDist > maxSqDist) {\n farPointIndex = i;\n maxSqDist = sqDist;\n }\n }\n\n if (maxSqDist > sqTolerance) {\n // Break the line up into 2 parts, the line toward the \"outlier\" point from the start, and from\n // the outlier point to the end\n if (farPointIndex - firstI > 1) simplifyDPStep(points, firstI, farPointIndex, sqTolerance, simplified);\n \n simplified.push(points[farPointIndex])\n simplified.push(points[farPointIndex + 1])\n\n if (lastI - farPointIndex > 1) simplifyDPStep(points, farPointIndex, lastI, sqTolerance, simplified);\n }\n}\n\n// simplification using Ramer-Douglas-Peucker algorithm\nfunction simplifyDouglasPeucker(points: Uint32Array, sqTolerance: number) {\n const lastI = points.length - 2;\n\n const simplified = new PushAbleUint32Array(points.length)\n simplified.push(points[0])\n simplified.push(points[1])\n\n simplifyDPStep(points, 0, lastI, sqTolerance, simplified)\n \n simplified.push(points[lastI])\n simplified.push(points[lastI + 1])\n\n const simplifiedArr = simplified.squish()\n return simplifiedArr\n}\n\n// both algorithms combined for awesome performance\nexport function simplify(points: Uint32Array, tolerance: number, highestQuality: boolean) {\n if (points.length <= 4) return points\n\n const sqTolerance = tolerance * tolerance\n let newPoints = highestQuality ? points : simplifyRadialDist(points, sqTolerance)\n newPoints = simplifyDouglasPeucker(newPoints, sqTolerance)\n\n return newPoints\n}\n","import { turboColorMap } from \"../common/turboColorMap\"\nimport { copyCtx, parseColor } from \"../common/utils\"\nimport { LookupTable, ColorOptions } from \"../types\"\n\n/**\n * Function to draw tile-based density information atop of an OpenSeaDragon tile.\n * The density information can be, and is most of the time, of a higher resolution than the tile.\n * \n * @param ctx The OpenSeaDragon Tile canvas context\n * @param tileTopLeft The point of the most top left coordinate of the OSD tile\n * @param tileBottomRight The point of the most bottom right coordinate of the OSD tile\n * @param openSeaDragonTileSize The size in image x and y of the OSD tile\n * @param lookupTables The object from which the density information is extracted\n */\nexport function densityFilter(\n ctx: CanvasRenderingContext2D,\n tileTopLeft: OpenSeadragon.Point,\n tileBottomRight: OpenSeadragon.Point,\n openSeaDragonTileSize: OpenSeadragon.Point,\n lookupTables: LookupTable[],\n colorOptions: ColorOptions\n) {\n const desiredDensity = (tileBottomRight.x - tileTopLeft.x) / 64\n const bestDensityOption = lookupTables.reduce(function(curBest, curr) {\n const curSize = curr.tile_size\n const curDiff = Math.abs(curSize - desiredDensity)\n const bestSize = curBest.tile_size\n const bestDif = Math.abs(bestSize - desiredDensity)\n return curDiff < bestDif ? curr : curBest\n })\n\n const tileWidth = bestDensityOption.tile_size\n const tileHeight = bestDensityOption.tile_size\n \n const sx = Math.round(tileTopLeft.x / tileWidth)\n const sy = Math.round(tileTopLeft.y / tileHeight)\n const sWidth = Math.round(openSeaDragonTileSize.x / tileWidth)\n const sHeight = Math.round(openSeaDragonTileSize.y / tileHeight)\n \n const newTileCtx = copyCtx(ctx, false, true)\n // If IE11 is complaining this drawImage is OOB, don't do it at all.\n if (!window['hasWarnedAnno2ie11'])\n newTileCtx.drawImage(bestDensityOption.canvas, Math.min(bestDensityOption.canvas.width, sx), sy, sWidth, sHeight, 0, 0, newTileCtx.canvas.width, newTileCtx.canvas.height)\n\n if (sx + sWidth > bestDensityOption.canvas.width && false) {\n // IE11 Smears canvas data if it is drawn OOB, mitigate that by clearing the smeared parts\n newTileCtx.fillStyle = 'white'\n if (sx > bestDensityOption.canvas.width) newTileCtx.fillRect(0, 0, newTileCtx.canvas.width, newTileCtx.canvas.height)\n else {\n const goodUntilX = bestDensityOption.canvas.width - (tileTopLeft.x / tileWidth)\n console.log(newTileCtx.canvas.width, bestDensityOption.canvas.width, (tileTopLeft.x / tileWidth), goodUntilX)\n newTileCtx.fillRect(goodUntilX, 0, newTileCtx.canvas.width - goodUntilX, newTileCtx.canvas.height)\n }\n }\n\n newTileCtx.fillStyle = ctx.fillStyle\n convertToDensityMask(newTileCtx, colorOptions)\n ctx.drawImage(newTileCtx.canvas, 0, 0)\n}\n\n\n/**\n * Util that replaces black with transparent and other values with better color\n * \n * @param ctx Canvas to replace the values from\n * @param positiveColor Color used to replace all non-black pixels (r, g, b, [a])\n */\nfunction convertToDensityMask(ctx: CanvasRenderingContext2D, colorOptions: ColorOptions) {\n const imgd = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height)\n const pix = imgd.data\n \n const fillColor = colorOptions.fillColor\n\n // Loops through all of the pixels and modifies the components.\n for (let i = 0; i < pix.length; i += 4) {\n // RG and B should be the same because greyscale\n const pixVal = pix[i] / 255\n const relativeIntensity = Math.min(pixVal, 0.9) // Limit between 0 and 0.9\n\n if (colorOptions.densityFill === 'Turbo') {\n const turboI = Math.floor(relativeIntensity * 255)\n const turboColors = turboColorMap[turboI]\n\n pix[i] = Math.floor(turboColors[0] * 255) // r\n pix[i + 1] = Math.floor(turboColors[1] * 255) // g\n pix[i + 2] = Math.floor(turboColors[2] * 255) // b\n pix[i + 3] = Math.round(relativeIntensity * 255) // a\n } else if (colorOptions.densityFill === 'fillColor') {\n pix[i] = fillColor.r // r\n pix[i + 1] = fillColor.g // g\n pix[i + 2] = fillColor.b // b\n pix[i + 3] = Math.min(Math.round(relativeIntensity * 255), 180) // a\n } else {\n pix[i + 3] = 0;\n }\n }\n\n ctx.putImageData(imgd, 0, 0);\n}","import { hasOverlap } from \"../heatmap/heatmapFilter\"\nimport { ContinueFunction, Label } from \"../types\"\nimport { addBorderToCanvas, log2canvas, SHOULD_SHOW_STATS } from \"../common/utils\"\n\nexport function labelFilter(\n ctx: CanvasRenderingContext2D,\n next: ContinueFunction,\n tile: OpenSeadragon.Tile,\n labels: Label[]\n) {\n ctx.save()\n const viewer = ((window as any).viewer as OpenSeadragon.Viewer)\n const viewport = viewer.viewport\n // Get bounds of this tile\n const vc2ic = viewport.viewportToImageCoordinates.bind(viewport) // function to convert viewport to universal image coordinates\n const tileTopLeft: OpenSeadragon.Point = vc2ic(tile.bounds.getTopLeft())\n const tileSize: OpenSeadragon.Point = vc2ic(tile.bounds.getSize())\n const tileFactor = Math.max(tileSize.x / 256, tileSize.y / 256)\n\n // @ts-ignore Ignore invocation of OpenSeaDragon global\n const curTileRect: OpenSeadragon.Rect = new OpenSeadragon.Rect(tileTopLeft.x, tileTopLeft.y, tileSize.x, tileSize.y)\n\n for (const label of labels) {\n label.fontsize = 32 // WARNING: Overwrite all fontsizes, because the saved ones are way to big!\n\n ctx.font = label.fontsize + 'px Helvetica'; \n const labelDims = getLabelDims(ctx, label)\n // @ts-ignore Ignore invocation of OpenSeaDragon global\n const labelRect = new OpenSeadragon.Rect(label.x, label.y, (labelDims.width + 6) * tileFactor, labelDims.height * tileFactor)\n if (hasOverlap(curTileRect, labelRect)) drawLabel(ctx, curTileRect, label)\n }\n\n if (SHOULD_SHOW_STATS) {\n addBorderToCanvas(ctx, 3)\n log2canvas(ctx, `Z ${tile.level} X ${tile.x} Y ${tile.y}`)\n }\n ctx.restore()\n next()\n}\n\nfunction drawLabel(ctx: CanvasRenderingContext2D, tileRect: OpenSeadragon.Rect, label: Label) {\n /** Convert 2 canvas coordinates */\n const xInTile = label.x - tileRect.x\n const yInTile = label.y - tileRect.y\n\n const xRatioInTile = xInTile / tileRect.width\n const yRatioInTile = yInTile / tileRect.height\n const canvasX = xRatioInTile * ctx.canvas.width\n const canvasY = yRatioInTile * ctx.canvas.height\n\n const labelDims = getLabelDims(ctx, label)\n const padding = 3\n const labelBoundWidth = labelDims.width + padding * 2\n // First create the semi-transparent white background box\n ctx.fillStyle = '#FFFFFF'\n ctx.globalAlpha = 0.5\n ctx.fillRect(canvasX, canvasY, labelBoundWidth, labelDims.height + padding)\n \n // Then draw lines around this bounding box\n ctx.globalAlpha = 1\n ctx.strokeStyle = '#000000'\n ctx.strokeRect(canvasX, canvasY, labelBoundWidth, labelDims.height + padding)\n\n // And finally, actually write each line of text\n ctx.fillStyle = '#000000'\n let curY = canvasY + label.fontsize - padding\n for (const line of label.label.split('\\n')) {\n ctx.fillText(line, canvasX + padding, curY)\n curY += label.fontsize\n }\n}\n\nfunction getLabelDims(ctx: CanvasRenderingContext2D, label: Label) {\n const lines = label.label.split('\\n')\n const height = lines.length * label.fontsize\n const width = lines.reduce((curWidest, line) => { // Get the width of the widest line in the label\n const curLineWidth = ctx.measureText(line).width\n return curLineWidth > curWidest ? curLineWidth : curWidest\n }, 0)\n return { height, width }\n}\n\nexport function testLabelFilter() {\n console.log('Loading testLabelFilter')\n const labels: Label[] = [{\n label: 'Test 1',\n x: 100,\n y: 100,\n whenToShow: \"always\",\n fontsize: 16\n }, {\n label: 'Test 2',\n x: 1000,\n y: 1000,\n whenToShow: \"always\",\n fontsize: 32\n },\n {\n label: 'Test 3 AAAAAAAAAAAAAAA\\nBBBBBBB',\n x: 10000,\n y: 10000,\n whenToShow: \"always\",\n fontsize: 32\n },\n {\"label\":\"TestingABC\\nTest123\\nABCD\",\"x\":2137,\"y\":14556,\"whenToShow\":\"always\",\"fontsize\":391}\n ]\n\n labels.forEach((e) => e.fontsize = 30)\n const testLabelFilter = function(ctx: CanvasRenderingContext2D, next: ContinueFunction, tile: OpenSeadragon.Tile) {\n return labelFilter(ctx, next, tile, labels)\n }\n\n window['anno2Manager'].osdOverlayPlugin.updateOverlay(testLabelFilter, 'test-label-filter')\n}\n\n","import { simplify } from \"../../simplify\"\nimport { SHOULD_SHOW_STATS, addBorderToCanvas, log2canvas, getTileRange, parseColor, log } from \"../common/utils\"\nimport { densityFilter } from \"../density/densityFilter\"\nimport { labelFilter } from \"../label/labelFilter\"\nimport { ContinueFunction, LookupTable, PolygonsData, ColorOptions, Label } from \"../types\"\nimport { PolygonContainer } from \"./PolygonContainer\"\n\n/**\n * Base OpenSeaDragon filter for polygons\n * Draws either a summary view, encompassed in the \"lookupTables\", or the raw polygons data to a JS canvas.\n * Also draws big polygons if they are available in the summary view.\n * \n * @param ctx OpenSeaDragon Tile canvas context\n * @param next Function to be called when done with processing to trigger the next filter\n * @param tile The OpenSeadragon.Tile that is being processed by this respective pass\n */\nexport function polygonFilter(\n ctx: CanvasRenderingContext2D,\n next: ContinueFunction,\n tile: OpenSeadragon.Tile,\n lookupTables: LookupTable[],\n polygonData: PolygonsData,\n colorOptions: ColorOptions,\n labels: Label[]\n) {\n // The next() function must _always_ be called when done\n const t0 = performance.now()\n ctx.save()\n\n const viewer = ((window as any).viewer as OpenSeadragon.Viewer)\n const viewport = viewer.viewport\n const tileZoom = tile.level\n\n const fillColor = colorOptions.fillColor\n // Set the base color, the opacity is modified in the drawing functions\n ctx.fillStyle = `rgb(${fillColor.r}, ${fillColor.g}, ${fillColor.b})`\n ctx.globalAlpha = fillColor.a\n\n // Get base tiles inside this tile\n const vc2ic = viewport.viewportToImageCoordinates.bind(viewport) // function to convert viewport to universal image coordinates\n const tileTopLeft: OpenSeadragon.Point = vc2ic(tile.bounds.getTopLeft())\n const tileBottomRight: OpenSeadragon.Point = vc2ic(tile.bounds.getBottomRight())\n const tileSize: OpenSeadragon.Point = vc2ic(tile.bounds.getSize())\n\n\n // Show summary/density view when there is no polygon data or zoomed in enough\n // Given that drawing raw polygons is way more expensive than drawing the density view, this should actually depend on\n // a performance metric, instead of being hard coded. e.g. IE11 on a pentium should only draw polygons on the lowest level\n // and a M2 Pro Mac on Safari should show it on many levels\n const isIE11 = typeof window['CollectGarbage'] == 'function'\n const zoomLevel = isIE11 ? 1 : 8\n const showDensity = !polygonData || tileSize.x > 256 * zoomLevel + 1 // Always add one for floating diff\n \n // Draw density lookup tables if user is zoomed out\n if (showDensity) densityFilter(ctx, tileTopLeft, tileBottomRight, tileSize, lookupTables, colorOptions)\n \n // Draw the big polygons if the user is zoomed out, and the data is loaded and present\n if (showDensity && polygonData) polygonFilterRaw(ctx, tileTopLeft, tileBottomRight, tileSize, polygonData, colorOptions.fixedLineWidth, true)\n \n // If user is zoomed in and polygon data is loaded, try to show it\n if (!showDensity && polygonData) polygonFilterRaw(ctx, tileTopLeft, tileBottomRight, tileSize, polygonData, colorOptions.fixedLineWidth, false)\n\n // Show any labels we might have\n ctx.restore()\n ctx.save()\n if (labels.length > 0) labelFilter(ctx, () => {}, tile, labels)\n\n const timeTotal = performance.now() - t0\n // Log some stuff to the canvas\n if (SHOULD_SHOW_STATS) {\n addBorderToCanvas(ctx, 3)\n log2canvas(ctx, `Z ${tileZoom} ${timeTotal.toFixed(1)} ms polys`, 1)\n }\n // continue to the next filter\n ctx.restore()\n next()\n}\n\n/**\n * Function to draw the relevant polygons on top of an OpenSeaDragon tile\n * \n * @param ctx The OpenSeaDragon Tile canvas context\n * @param tileTopLeft The point of the most top left coordinate of the OSD tile\n * @param tileBottomRight The point of the most bottom right coordinate of the OSD tile\n * @param openSeaDragonTileSize The size in image x and y of the OSD tile\n * @param fixedLineWidth The fixed width of a polygon line, so this actually scales when zooming in/out\n * @param polygonContainer Container of all polygons, that is queried for the polygons candidates\n */\nfunction polygonFilterRaw(\n ctx: CanvasRenderingContext2D,\n tileTopLeft: OpenSeadragon.Point,\n tileBottomRight: OpenSeadragon.Point,\n openSeaDragonTileSize: OpenSeadragon.Point,\n polygonContainer: PolygonContainer,\n fixedLineWidth?: number,\n useBigPolygons = false\n) {\n const polyRange = getTileRange(tileTopLeft, tileBottomRight, polygonContainer.tileSize, polygonContainer.tileSize)\n const tileFactor = Math.sqrt(openSeaDragonTileSize.x / 256) // 1 for highest level, 2 for one above, 4 for above that etc.\n\n const defaultLineWidth = useBigPolygons ? 5 : 1.5\n const lineWidth = fixedLineWidth ? fixedLineWidth / tileFactor : defaultLineWidth // Fixed lineWidth is a width that scale with the zoom!\n const tileWidth = tileBottomRight.x - tileTopLeft.x\n // These polygons bounding box overlap with the current tile\n const polygonCandidates = polygonContainer.getTileRange(polyRange, useBigPolygons)\n \n // Draw every polygon candidate\n for (const polygon of polygonCandidates) {\n // We need to convert the raw image point coordinates to the coordinates on this canvas\n const lastI = polygon.vertices.length - 1\n const finalLine = new Uint32Array([\n polygon.vertices[lastI - 1], polygon.vertices[lastI], // xy last point\n polygon.vertices[0], polygon.vertices[1] // xy first point\n ])\n \n const tolerance = tileWidth > 256 ? Math.round(tileWidth / 256) * 2 : 1\n const relevantPolylines = simplifyPolygon(polygon.vertices, tileTopLeft, openSeaDragonTileSize, tolerance)\n\n const canvasVertices = convertImageVertices2canvas(ctx, relevantPolylines, tileTopLeft, openSeaDragonTileSize)\n\n // Then draw them\n drawPolygon(ctx, canvasVertices, [], lineWidth)\n }\n}\n\n\nconst simplifiedPolygonCache: Map = new Map()\nwindow[\"simplifiedPolygonCache\"] = simplifiedPolygonCache\nfunction simplifyPolygon(\n imageVertices: Uint32Array,\n tileTopLeft: OpenSeadragon.Point,\n tileSize: OpenSeadragon.Point,\n tolerance = 5\n) {\n enum Direction {\n Above,\n Below,\n Left,\n Right,\n Inside\n }\n\n function getPointDir(xImg: number, yImg: number) {\n if (xImg > tileTopLeft.x + tileSize.x) return Direction.Right\n else if (xImg < tileTopLeft.x) return Direction.Left\n else if (yImg > tileTopLeft.y + tileSize.y) return Direction.Below \n else if (yImg < tileTopLeft.y) return Direction.Above\n else return Direction.Inside\n }\n\n const t0 = performance.now()\n const cacheKey = `${imageVertices.byteOffset}-${imageVertices.byteLength}-${tolerance.toFixed(1)}`\n if (!simplifiedPolygonCache.has(cacheKey) && tolerance > 0) {\n simplifiedPolygonCache.set(cacheKey, simplify(imageVertices, tolerance, false))\n }\n\n const polygon = tolerance > 0 ? simplifiedPolygonCache.get(cacheKey) : imageVertices\n\n const t1 = performance.now()\n const relevantLines: Uint32Array[] = []\n let curLine: number[] = []\n\n let lastDirection = getPointDir(polygon[0], polygon[1]) // Always include the first point\n // Determine which lines are relevant the current tile\n\n for (let i = 2; i < polygon.length + 2; i += 2) {\n // make _i_ loop to the first 2 points, since there is an implicit line between the last point\n // and the first\n const xImg = polygon[i % polygon.length]\n const yImg = polygon[(i + 1) % polygon.length]\n\n // Ignore points that are out of the tile.\n const pointDir = getPointDir(xImg, yImg)\n\n const lineCanCrossTile = lastDirection === Direction.Inside \n || pointDir === Direction.Inside\n || lastDirection !== pointDir\n\n lastDirection = pointDir\n\n if (!lineCanCrossTile) {\n // Add the current line if needed\n if (curLine.length > 0) relevantLines.push(new Uint32Array(curLine))\n curLine = []\n continue\n }\n if (curLine.length === 0) curLine.push(polygon[i - 2], polygon[i - 1])\n\n curLine.push(xImg, yImg)\n }\n if (curLine.length > 0) relevantLines.push(new Uint32Array(curLine))\n\n if (imageVertices.length > 10 * 1000) log(`Calculating simplifiedPolygon took ${(t1 - t0).toFixed(1)} ms took, polyLines ${(performance.now() - t1).toFixed(1)} ms `, \n imageVertices.length, polygon.length, relevantLines.reduce((acc, cur) => acc += cur.length, 0)\n )\n \n return relevantLines\n}\n\n/**\n * Function to draw a polygon, with a potential list of negative polygons inside of it, on top of a canvas.\n * The positive parts of the polygon are filled-in.\n * \n * @param ctx The OpenSeaDragon Tile canvas context\n * @param positiveVertices The vortices of the polygon that needs to be drawn\n * @param negativeVerticesArr An array of negative polygons that intersect with the positive polygon\n * @param lineWidth The width used for the polyline\n */\nfunction drawPolygon(\n ctx: CanvasRenderingContext2D,\n positiveVertices: Float32Array[],\n negativeVerticesArr: Float32Array[][],\n lineWidth = 2\n) {\n const positiveAlpha = 0\n const coloring = parseColor(ctx.fillStyle as string)\n const outlineAlpha = ctx.globalAlpha\n ctx.strokeStyle = `rgb(${coloring.r}, ${coloring.g}, ${coloring.b})`\n\n // If there are no negative polygons, we simply just draw the polygon directly on the canvas\n if (negativeVerticesArr.length === 0) return drawPolygonRaw(ctx, positiveVertices, positiveAlpha, outlineAlpha, lineWidth)\n // Draw a polygon with a negative inside it\n let canvasTemp = document.createElement(\"canvas\")\n let ctxTemp = canvasTemp.getContext(\"2d\");\n ctxTemp.canvas.width = ctx.canvas.width\n ctxTemp.canvas.height = ctx.canvas.height\n\n ctxTemp.strokeStyle = ctx.fillStyle\n ctxTemp.fillStyle = ctx.fillStyle\n // Draw the positive polygon\n drawPolygonRaw(ctxTemp, positiveVertices, positiveAlpha, outlineAlpha, lineWidth)\n\n // Remove the negative polygon\n for (const negativeVertices of negativeVerticesArr) drawPolygonRaw(ctxTemp, negativeVertices, null, outlineAlpha, lineWidth * 2)\n ctxTemp.globalCompositeOperation = \"destination-out\";\n for (const negativeVertices of negativeVerticesArr) drawPolygonRaw(ctxTemp, negativeVertices, 1, null, null)\n ctxTemp.fill()\n\n // Copy over the result to the original canvas\n ctx.drawImage(canvasTemp, 0, 0)\n // Delete the temporary canvas\n ctxTemp = null\n canvasTemp = null\n}\n\n/**\n * Draws a polygon on top of a canvas\n * \n * @param ctx The canvas on which the vertices are drawn\n * @param allPoints Vertices the polygon consists off: [x1, y1, x2, y2, ...]\n * @param fillAlpha Opacity the polygon should filled in at (0 to 1)\n * @param strokeAlpha Opacity the polygon border should (0 to 1)\n * @param lineWidth Width of the border\n */\nfunction drawPolygonRaw(\n ctx: CanvasRenderingContext2D,\n allLines: Float32Array[], \n fillAlpha: number,\n strokeAlpha: number,\n lineWidth: number\n) {\n if (lineWidth) ctx.lineWidth = lineWidth;\n const origGlobalAlpha = ctx.globalAlpha\n if (fillAlpha) ctx.globalAlpha = fillAlpha\n if (strokeAlpha) ctx.globalAlpha = strokeAlpha\n\n // allLines = [[x1, y1, x2, y2], [x32, y32, x33, y33]]\n\n for (const line of allLines) {\n ctx.beginPath()\n ctx.moveTo(line[0], line[1])\n for (let i = 2; i < line.length; i += 2) {\n ctx.lineTo(line[i], line[i + 1])\n }\n\n if (fillAlpha) ctx.fill()\n if (strokeAlpha) ctx.stroke()\n }\n ctx.globalAlpha = origGlobalAlpha\n}\n\ntype Point = number[] // x, y\n\n/**\n * Utility to convert image coordinates from polygons to canvas coordinates.\n * \n * @param ctx The OpenSeaDragon Tile canvas context\n * @param imageVertices An array of image x and y pairs.\n * @param tileTopLeft The point of the most top left coordinate of the OSD tile\n * @param tileSize Size of the OpenSeaDragon tile\n * @returns \n */\nfunction convertImageVertices2canvas(\n ctx: CanvasRenderingContext2D,\n polyLines: Uint32Array[],\n tileTopLeft: OpenSeadragon.Point,\n tileSize: OpenSeadragon.Point\n) {\n /** Convert 2 canvas coordinates */\n function c2c(xImg: number, yImg: number): Point {\n // Convert to coordinates on the canvas\n const xInTile = xImg - tileTopLeft.x\n const yInTile = yImg - tileTopLeft.y\n\n const xRatioInTile = xInTile / tileSize.x \n const yRatioInTile = yInTile / tileSize.y\n const xInCanvas = xRatioInTile * ctx.canvas.width\n const yInCanvas = yRatioInTile * ctx.canvas.height\n return [xInCanvas, yInCanvas]\n }\n\n const canvasLines = polyLines.map(line => {\n const canvasLine = new Float32Array(line.length)\n\n for (let i = 0; i < line.length; i += 2) {\n const x = line[i]\n const y = line[i + 1]\n const newXY = c2c(x ,y)\n canvasLine[i] = newXY[0]\n canvasLine[i + 1] = newXY[1]\n }\n return canvasLine\n })\n return canvasLines\n}\n","import { SHOULD_SHOW_STATS, addBorderToCanvas, log2canvas, getTileRange, parseColor } from \"../common/utils\"\nimport { densityFilter } from \"../density/densityFilter\"\nimport { ContinueFunction, LookupTable, MaskData, ColorOptions } from \"../types\"\nimport { decodePNG } from \"./pngDecoder/decodePNG\"\n\n/**\n * Base OpenSeaDragon filter for mask data.\n * Draws either a summary view, encompassed in the \"lookupTables\", or the raw mask data to a JS canvas.\n * \n * @param ctx OpenSeaDragon Tile canvas context\n * @param next Function to be called when done with processing to trigger the next filter\n * @param tile The OpenSeadragon.Tile that is being processed by this respective pass\n */\nexport function maskFilter(\n ctx: CanvasRenderingContext2D,\n next: ContinueFunction,\n tile: OpenSeadragon.Tile,\n lookupTables: LookupTable[],\n maskData: MaskData,\n colorOptions: ColorOptions\n) {\n // The next() function must _always_ be called when done\n const t0 = performance.now()\n ctx.save()\n\n const viewer = ((window as any).viewer as OpenSeadragon.Viewer)\n const viewport = viewer.viewport\n const tileZoom = tile.level\n\n const fillColor = colorOptions.fillColor\n // Set the base color, the opacity is modified in the drawing functions\n ctx.fillStyle = `rgb(${fillColor.r}, ${fillColor.g}, ${fillColor.b})`\n ctx.globalAlpha = fillColor.a\n\n // Get base tiles inside this tile\n const vc2ic = viewport.viewportToImageCoordinates.bind(viewport) // function to convert viewport to universal image coordinates\n const tileTopLeft: OpenSeadragon.Point = vc2ic(tile.bounds.getTopLeft())\n const tileBottomRight: OpenSeadragon.Point = vc2ic(tile.bounds.getBottomRight())\n const tileSize: OpenSeadragon.Point = vc2ic(tile.bounds.getSize())\n\n // Show summary/density view when the tilesize is either fully zoomed in, or one level above that\n const showDensity = !maskData || tileSize.x > 256 * 2 + 1 // Always add one for floating diff\n \n // Draw density lookup tables if user is zoomed out\n if (showDensity) densityFilter(ctx, tileTopLeft, tileBottomRight, tileSize, lookupTables, colorOptions)\n \n // If the user is zoomed in and we have points/mask data\n if (!showDensity && maskData) maskFilterRaw(ctx, tileTopLeft, tileBottomRight, tileSize, maskData)\n\n const timeTotal = performance.now() - t0\n // Log some stuff to the canvas\n if (SHOULD_SHOW_STATS) {\n addBorderToCanvas(ctx, 3)\n log2canvas(ctx, `Z ${tileZoom} ${timeTotal.toFixed(1)} ms mask`, 0 + 1)\n }\n // continue to the next filter\n ctx.restore()\n next()\n}\n\n\n\n/**\n * Function to draw the relevant mask (or individual pixel points) on top of an OpenSeaDragon tile \n * \n * @param ctx The OpenSeaDragon Tile canvas context\n * @param tileTopLeft The point of the most top left coordinate of the OSD tile\n * @param tileBottomRight The point of the most bottom right coordinate of the OSD tile\n * @param openSeaDragonTileSize The size in image x and y of the OSD tile\n * @param data The points data, being an object containing y and x keys and the data associated with that tile\n */\nfunction maskFilterRaw(\n ctx: CanvasRenderingContext2D,\n tileTopLeft: OpenSeadragon.Point,\n tileBottomRight: OpenSeadragon.Point,\n openSeaDragonTileSize: OpenSeadragon.Point,\n data: MaskData\n) {\n // We need to find the offsets of these coordinates in the base tile mask array\n const maskWidth = data.tileWidth\n const maskHeight = data.tileHeight\n\n const range = getTileRange(tileTopLeft, tileBottomRight, maskWidth, maskHeight)\n // Loop over every tile present in this canvas\n for (let yI = range.y.start; yI < range.y.end; yI++) {\n for (let xI = range.x.start; xI < range.x.end; xI++) {\n\n const xInTile = (xI - range.x.start) * (maskWidth + 1)\n const yInTile = (yI - range.y.start) * (maskHeight + 1)\n\n const masks = data.masks\n const hasData = yI in masks && xI in masks[yI]\n const curTileMask = hasData ? masks[yI][xI] : [] // The PNG buf, or raw [x1, y1, x2, y2]\n \n if (curTileMask.length > 0) {\n if (curTileMask[0] === 137 && curTileMask[1] === 80) {\n // PNG magic bytes, TODO clean up after PNG decision\n drawPngOverCanvas(curTileMask as Uint8Array, ctx, xInTile, yInTile, openSeaDragonTileSize)\n } else if (curTileMask[4] === 48 && curTileMask[6] === 1) {\n // JBIG2 magic bytes\n throw new Error(\"Got JBIG2 image\")\n } else drawRawPoints(ctx, curTileMask, xInTile, yInTile, openSeaDragonTileSize)\n }\n } // Done row\n } // Done column \n}\n\n/**\n * Colors a pixel on an OpenSeaDragon tile canvas for each passed point using an offset.\n * \n * @param ctx The canvas on which the pixels are colored\n * @param pointsInTile Flattend list of [x, y] pairs, assumed to be the remainders in the tile\n * @param xInTile X-offset of the openSeaDragonTile in the canvas\n * @param yInTile Y-offset of the openSeaDragonTile in the canvas\n * @param tileSize Size of the OpenSeaDragon tile\n */\nfunction drawRawPoints(\n ctx: CanvasRenderingContext2D, \n pointsInTile: ArrayLike,\n xInTile: number, \n yInTile: number, \n tileSize: OpenSeadragon.Point,\n) {\n // Draw a pixel for each point on the canvas\n // Configure the color for each pixel\n ctx.beginPath()\n const origGlobalAlpha = ctx.globalAlpha\n ctx.globalAlpha = 0.7\n\n for (let pointI = 0; pointI < pointsInTile.length; pointI += 2) {\n const x = pointsInTile[pointI]\n const y = pointsInTile[pointI + 1]\n\n const xPointInTile = x + xInTile\n const yPointInTile = y + yInTile\n // We need to convert these coordinates to the position in the tile\n const ratioX = xPointInTile / tileSize.x\n const ratioY = yPointInTile / tileSize.y\n const canvasXstart = Math.floor(ratioX * ctx.canvas.width)\n const canvasYstart = Math.floor(ratioY * ctx.canvas.height)\n \n ctx.rect(canvasXstart, canvasYstart, 1, 1) // Draw a single pixel for this point\n }\n\n // Actually fill the added rectangles\n ctx.fill()\n ctx.closePath()\n ctx.globalAlpha = origGlobalAlpha\n}\n\n\n/**\n * Function that parses PNG bytes and draws them over an OpenSeaDragon tile canvas.\n * \n * @param imgData PNG byte buffer\n * @param ctx Canvas to draw over\n * @param xInTile X-offset of the PNG in the tile associated with this canvas\n * @param yInTile Y-offset of the PNG in the tile associated with this canvas\n * @param tileSize Size of the associated OpenSeaDragon tile\n */\nfunction drawPngOverCanvas(\n imgData: Uint8Array, \n ctx: CanvasRenderingContext2D,\n xInTile: number, \n yInTile: number,\n tileSize: OpenSeadragon.Point,\n) {\n const divider = Math.round(tileSize.x / 256)\n const imgSize = Math.round(256 / divider)\n\n const ratioX = xInTile / tileSize.x\n const ratioY = yInTile / tileSize.y\n const canvasXstart = Math.floor(ratioX * ctx.canvas.width)\n const canvasYstart = Math.floor(ratioY * ctx.canvas.height)\n\n const pngCanvas = decodePNG(imgData)\n // We need to extract the raw RGB values from fillStyle\n if (typeof ctx.fillStyle !== 'string') throw new Error('Fill style not a string, cannot extract rgb color')\n const fillColor = parseColor(ctx.fillStyle)\n convertToTransparentMask(pngCanvas.getContext('2d'), [fillColor.r, fillColor.g, fillColor.b, ctx.globalAlpha * 255])\n \n ctx.drawImage(pngCanvas, canvasXstart, canvasYstart, imgSize, imgSize)\n}\n\n/**\n * Util that replaces black with transparent and other values with a positive color\n * \n * @param ctx Canvas to replace the values from\n * @param positiveColor Color used to replace all non-black pixels (r, g, b, [a])\n */\nfunction convertToTransparentMask(ctx: CanvasRenderingContext2D, positiveColor: number[]) {\n const imgd = ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height)\n const pix = imgd.data\n\n // Loops through all of the pixels and modifies the components.\n for (let i = 0; i < pix.length; i += 4) {\n if (pix[i] === 0) pix[i+3] = 0; // black becomes transparent, so set alpha to 0\n else {\n pix[i] = positiveColor[0]\n pix[i + 1] = positiveColor[1]\n pix[i + 2] = positiveColor[2]\n if (positiveColor.length > 3) pix[i + 3] = positiveColor[3]\n }\n }\n\n ctx.putImageData(imgd, 0, 0);\n}\n","import { SHOULD_SHOW_STATS, addBorderToCanvas, log2canvas, getTileRange } from \"../common/utils\"\nimport { densityFilter } from \"../density/densityFilter\"\nimport { decodePNG } from \"../mask/pngDecoder/decodePNG\"\nimport { ContinueFunction, MaskData, ColorOptions, LookupTable } from \"../types\"\n\n/**\n * Base OpenSeaDragon filter for circle/points data.\n * Draws circles based on the data\n * \n * @param ctx OpenSeaDragon Tile canvas context\n * @param next Function to be called when done with processing to trigger the next filter\n * @param tile The OpenSeadragon.Tile that is being processed by this respective pass\n * @param circlesData MaskData containing an tile tree with PNG's or raw points\n * @param colorOptions With which color to draw the circles, uses the fillColor and lineWidth for fixed size points\n * @param numItems The number of points in total, if <= 10000, then no density view is used\n */\nexport function circleFilter(\n ctx: CanvasRenderingContext2D,\n next: ContinueFunction,\n tile: OpenSeadragon.Tile,\n lookupTables: LookupTable[],\n circlesData: MaskData,\n colorOptions: ColorOptions,\n numItems: number | null\n) {\n // The next() function must _always_ be called when done\n const t0 = performance.now()\n ctx.save()\n\n const viewer = ((window as any).viewer as OpenSeadragon.Viewer)\n const viewport = viewer.viewport\n const tileZoom = tile.level\n\n const fillColor = colorOptions.fillColor\n // Set the base color, the width is determined in circleFilterRaw\n ctx.strokeStyle = `rgb(${fillColor.r}, ${fillColor.g}, ${fillColor.b})`\n ctx.globalAlpha = fillColor.a\n\n // Get base tiles inside this tile\n const vc2ic = viewport.viewportToImageCoordinates.bind(viewport) // function to convert viewport to universal image coordinates\n const tileTopLeft: OpenSeadragon.Point = vc2ic(tile.bounds.getTopLeft())\n const tileSize: OpenSeadragon.Point = vc2ic(tile.bounds.getSize())\n \n // @ts-ignore Ignore invocation of OpenSeaDragon global\n const curTileRect: OpenSeadragon.Rect = new OpenSeadragon.Rect(tileTopLeft.x, tileTopLeft.y, tileSize.x, tileSize.y)\n\n const shouldShowDensity = curTileRect.width > 4096 - 1 && (numItems ?? 10001) > 10 * 1000\n if (shouldShowDensity) densityFilter(ctx, tileTopLeft, curTileRect.getBottomRight(), tileSize, lookupTables, colorOptions)\n else if (circlesData) circleFilterRaw(ctx, curTileRect, colorOptions.fixedLineWidth, circlesData)\n\n const timeDraw = performance.now() - t0\n ctx.getImageData(0, 0, ctx.canvas.width, ctx.canvas.height) // Call getImageData to make sure we actually have drawn everything (needed in chrome)\n const timeTotal = performance.now() - t0\n // Log some stuff to the canvas\n if (SHOULD_SHOW_STATS) {\n addBorderToCanvas(ctx, 3)\n log2canvas(ctx, `Z ${tileZoom} ${timeDraw.toFixed(1)} / ${timeTotal.toFixed(1)} ms circles`, 0)\n }\n // continue to the next filter\n ctx.restore()\n next()\n}\n\n\n/**\n * Function to draw circles data on top of the relevant tiles\n * \n * @param ctx The Rendering context of the tile that will get modified\n * @param tileBoundBox The bounding box of this tile, in most zoomed in coordinates\n * @param fixedCircleSize Diameter of a circle in level0 pixels\n * @param data The circles data\n */\nfunction circleFilterRaw(\n ctx: CanvasRenderingContext2D,\n tileBoundBox: OpenSeadragon.Rect,\n fixedCircleSize: number | null,\n data: MaskData\n) {\n // We need to find the offsets of these coordinates in the base tile mask array\n const maskWidth = data.tileWidth\n const maskHeight = data.tileHeight\n\n // (20 level0 / 2) / (512 level0width / 256 canvasWidth) = 5 canvasPixels (radius)\n const tileCircleRadius = fixedCircleSize ? (fixedCircleSize / 2) / (tileBoundBox.width / ctx.canvas.width) : 8\n ctx.save()\n \n\n if (tileCircleRadius < 2) ctx.lineWidth = 0.5\n else if (tileCircleRadius < 5) ctx.lineWidth = 1\n else ctx.lineWidth = 2\n\n const range = getTileRange(tileBoundBox.getTopLeft(), tileBoundBox.getBottomRight(), maskWidth, maskHeight)\n const tileDelta = Math.ceil((fixedCircleSize ?? 8) / maskWidth)\n let numCircles = 0\n // Loop over every mask tile present in this canvas, and add a delta to every axis,\n // to also draw the points that are in the neigbouring tiles we add a delta, some neighbouring tiles\n // might have circles that overlap, and need to be visible and drawn\n for (let yI = (range.y.start - tileDelta); yI < (range.y.end + tileDelta); yI++) {\n for (let xI = (range.x.start - tileDelta); xI < (range.x.end + tileDelta); xI++) {\n\n const tileXoffset = xI * maskWidth\n const tileYoffset = yI * maskHeight\n\n const masks = data.masks\n const hasData = yI in masks && xI in masks[yI]\n const curTileMask = hasData ? masks[yI][xI] : [] // The PNG buf, or raw [x1, y1, x2, y2]\n \n if (curTileMask.length > 0) {\n ctx.beginPath() // Start a path for every tile\n let rawPoints: ArrayLike = [] // [x1, y1, x2, y2 ...]\n\n if (curTileMask[0] === 137 && curTileMask[1] === 80) {\n // If it is a PNG, decode it and save the points that it contains in memory\n rawPoints = png2rawPoints(curTileMask as Uint8Array)\n masks[yI][xI] = rawPoints\n } else rawPoints = curTileMask\n\n // Loop over all points/circles and add an arc/circle at their location\n for (let i = 0; i < rawPoints.length; i += 2) {\n const imgX = tileXoffset + rawPoints[i + 0]\n const imgY = tileYoffset + rawPoints[i + 1]\n const canvasX = ((imgX - tileBoundBox.x) / tileBoundBox.width) * ctx.canvas.width\n const canvasY = ((imgY - tileBoundBox.y) / tileBoundBox.height) * ctx.canvas.height\n \n // Move the pen to the current circle\n // see https://developer.mozilla.org/en-US/docs/Web/API/Canvas_API/Tutorial/Drawing_shapes#moving_the_pen\n ctx.moveTo(canvasX + tileCircleRadius, canvasY)\n \n // Actually draw the circle\n // if the circle is really small, actually draw a rectangle, because it is faster\n if (tileCircleRadius < 1) ctx.rect(canvasX, canvasY, tileCircleRadius, tileCircleRadius) \n else ctx.arc(canvasX, canvasY, tileCircleRadius, 0, 2 * Math.PI)\n numCircles++\n }\n ctx.stroke(); // Actually draw the path containing the circles\n }\n } // Done row\n } // Done column \n \n ctx.restore()\n\n if (SHOULD_SHOW_STATS) log2canvas(ctx, `${numCircles} circles`, 1) \n}\n\n/**\n * Util that converts a PNG to a list of coordinates of it's white pixels\n * \n * @param pngData Buffer containing PNG bytes\n * @returns TypedArray with the raw xy coordinates of white pixels, like [x1, y1, x2, y2, etc.]\n */\nfunction png2rawPoints(pngData: Uint8Array) {\n const pngCanvas = decodePNG(pngData)\n const pngCtx = pngCanvas.getContext('2d')\n // Loop over the canvas, to get the coordinates of the white pixels, which represent the circle coordinates\n const imgd = pngCtx.getImageData(0, 0, pngCanvas.width, pngCanvas.height)\n const pix = imgd.data\n const maxNumPoints = pngCanvas.width * pngCanvas.height\n \n const isBigCanvas = pngCanvas.width > 256 || pngCanvas.height > 256\n const points = isBigCanvas ? new Uint32Array(maxNumPoints) : new Uint8Array(maxNumPoints) // Should be ~256 KiB at most when 256x256\n let pointsLen = 0\n // Loops through all of the pixels and modifies the components.\n for (let i = 0; i < pix.length; i += 4) {\n if (pix[i] === 0) continue\n const pixI = Math.floor(i / 4)\n const x = pixI % pngCanvas.width\n const y = Math.floor(pixI / pngCanvas.width)\n points[pointsLen++] = x\n points[pointsLen++] = y\n }\n\n return points.slice(0, pointsLen) // Snip empty array to reduce size\n}\n","import { getData } from \"./common/fetchUtils\"\nimport { calcHeatmapCanvas, heatmapFilter } from \"./heatmap/heatmapFilter\"\nimport { OSDOverlayPlugin } from \"./common/OSDOverlayPlugin\"\nimport { Color, ColorOptions, ContinueFunction, HeatmapData, Label, LookupTable, MaskData, PolygonsData } from \"./types\"\nimport { DEFAULT_COLOR_MASK, DEFAULT_COLOR_POLYGONS, parseColor, log } from \"./common/utils\"\nimport { polygonFilter } from \"./polygon/polygonFilter\"\nimport { maskFilter } from \"./mask/maskFilter\"\nimport { circleFilter } from \"./circles/circleFilter\"\n\nexport class Anno2Manager {\n osdOverlayPlugin: OSDOverlayPlugin // Set on init\n overlays: Map = new Map()// uuid -> overlay\n\n constructor (viewer: OpenSeadragon.Viewer) {\n this.osdOverlayPlugin = new OSDOverlayPlugin(viewer)\n }\n\n /**\n * Add an Anno2 Annotation to the current OpenSeaDragon viewer using it's UUID.\n * \n * @param uuid Universally Unique IDentifier of the annotation to load\n * @param colorStr String of \"rgb[a]()\" or \"#FFEFEF\" that the annotation should use as color\n * @param lineThickness Fixed size of the annotation lines in pixels of the highest resolution level\n */\n async addAnno2Overlay(uuid: string, colorStr?: string, lineThickness?: number) {\n // Check if this UUID is already added\n if (this.overlays.has(uuid)) {\n if (!this.overlays.get(uuid).isVisible) this.overlays.get(uuid).show()\n return;\n }\n // immediately set a dummy overlay while the real one is loading.\n this.overlays.set(uuid, new Anno2Overlay(uuid, this.osdOverlayPlugin, 'points', {}))\n this.osdOverlayPlugin.updateOverlay(() => {}, uuid)\n\n // load it and add it the the overlays\n log('Downloading and setting new overlay', this.osdOverlayPlugin, uuid, colorStr, lineThickness)\n\n const passedColor = colorStr != null ? parseColor(colorStr) : null\n const overlay = await this.#fetchAndSetOverlay(uuid, passedColor, lineThickness) \n // After fetching the metadata, store it in the overlays\n this.overlays.set(uuid, overlay)\n }\n\n /**\n * Adds a anno2 overlay (also called filter) to the OpenSeaDragon viewer.\n * Also fetches the neccesary data from the server\n */\n async #fetchAndSetOverlay(uuid: string, color?: Color, fixedLineWidth?: number) {\n const dataPromises = await getData(uuid)\n const type = dataPromises.type\n \n // Only thing present now is metadata\n const overlay = new Anno2Overlay(uuid, this.osdOverlayPlugin, type, dataPromises.numItems, dataPromises.metadata)\n if (fixedLineWidth) overlay.colorOptions.fixedLineWidth = fixedLineWidth\n\n // Set the labels\n overlay.labels = dataPromises.labels\n \n const defaultColor = type === 'points' ? DEFAULT_COLOR_MASK : DEFAULT_COLOR_POLYGONS\n // Overwrite color with parameter color if set\n overlay.setColor(defaultColor)\n // Check if an alternative color was passed or the user added a color to the metadata object\n if (color) overlay.setColor(color)\n if (dataPromises.metadata.color) overlay.setColor(dataPromises.metadata.color)\n\n // Wait for the lookup tables to finish downloading, when done, add them to the available data\n dataPromises.lookupTableProms.forEach(lookupTableProm => {\n lookupTableProm.then((finishedLookupTable) => {\n overlay.availableData.lookupTables.push(finishedLookupTable)\n // And update the filter\n overlay.update()\n })\n })\n\n // Wait for the itemdata to finish\n dataPromises.itemDataProm.then((itemData) => {\n overlay.availableData.itemData = itemData\n overlay.update()\n })\n\n\n return overlay\n }\n}\n\nexport class Anno2Overlay {\n uuid: string\n type: 'points' | 'polygons' | 'heatmap' | 'circles'\n osdOverlayPlugin: OSDOverlayPlugin // Set on init\n labels: Label[]\n metadata: any\n numItems: number | null\n\n availableData = {\n lookupTables: [] as LookupTable[],\n itemData: null as MaskData | PolygonsData | HeatmapData\n }\n\n colorOptions: ColorOptions = {\n fillColor: Object.assign({}, DEFAULT_COLOR_MASK),\n densityFill: 'fillColor',\n fixedLineWidth: null\n }\n\n constructor(\n uuid: string, osdOverlayPlugin: OSDOverlayPlugin, \n type: 'points' | 'polygons' | 'heatmap' | 'circles', numItems: number | null, metadata: any\n ) {\n this.uuid = uuid\n this.type = type\n this.osdOverlayPlugin = osdOverlayPlugin\n this.metadata = metadata\n this.numItems = numItems\n }\n\n show() {\n if (this.isVisible) console.warn(`UUID: ${this.uuid} was already visible`)\n const enabler = this.osdOverlayPlugin.getOverlayEnabler(this.uuid)\n enabler()\n }\n \n /**\n * Hide the current overlay by disabling it in the overlayPlugin \n */\n hide() {\n const disabler = this.osdOverlayPlugin.getOverlayDisabler(this.uuid)\n disabler()\n }\n\n /**\n * Sets the color, either use a string parse-able by parseColor() (rgba() or #FFEFEAF) or pass\n * a Color object.\n */\n setColor(newColor: string | Color) {\n if (newColor === 'Turbo') {\n this.colorOptions.densityFill = 'Turbo'\n } else {\n if (typeof newColor === 'string') newColor = parseColor(newColor)\n this.colorOptions.fillColor = newColor\n this.colorOptions.densityFill = 'fillColor' \n }\n if (this.type === 'heatmap') this.update()\n this.osdOverlayPlugin.forceReload()\n }\n\n update() {\n const overlay = this\n const itemData = overlay.availableData.itemData\n if (overlay.type === 'heatmap') {\n // Calculate new canvas\n if (itemData && 'img' in itemData) {\n itemData.img.canvas = calcHeatmapCanvas(itemData.img.pngBytes, overlay.colorOptions)\n const heatmapFilterWithData = function(ctx: CanvasRenderingContext2D, next: ContinueFunction, tile: OpenSeadragon.Tile) {\n return heatmapFilter(ctx, next, tile, itemData)\n }\n this.osdOverlayPlugin.updateOverlay(heatmapFilterWithData, this.uuid)\n }\n } else if (overlay.type === 'points'){\n const filterWithData = function(ctx: CanvasRenderingContext2D, next: ContinueFunction, tile: OpenSeadragon.Tile) {\n return maskFilter(ctx, next, tile, overlay.availableData.lookupTables, itemData as MaskData, overlay.colorOptions)\n }\n this.osdOverlayPlugin.updateOverlay(filterWithData, this.uuid)\n } else if (overlay.type === 'polygons') {\n const filterWithData = function(ctx: CanvasRenderingContext2D, next: ContinueFunction, tile: OpenSeadragon.Tile) {\n return polygonFilter(ctx, next, tile, overlay.availableData.lookupTables, itemData as PolygonsData, overlay.colorOptions, overlay.labels)\n }\n this.osdOverlayPlugin.updateOverlay(filterWithData, this.uuid)\n } else if (overlay.type === 'circles') {\n const filterWithData = function(ctx: CanvasRenderingContext2D, next: ContinueFunction, tile: OpenSeadragon.Tile) {\n return circleFilter(ctx, next, tile, overlay.availableData.lookupTables, itemData as MaskData, overlay.colorOptions, overlay.numItems)\n }\n this.osdOverlayPlugin.updateOverlay(filterWithData, this.uuid)\n } else throw new Error('Cannot update overlay because it has an unknown type!')\n }\n\n /**\n * Retrieves the current fillColor of this overlay as a Color object\n */\n get color() {\n // Return Color or rgba string?\n return this.colorOptions.fillColor\n }\n\n get isVisible() {\n const allUuids = Object.keys(this.osdOverlayPlugin.allOverlays)\n if (!allUuids.includes(this.uuid)) throw new Error('UUID not loaded into the osdOverlayPlugin!')\n const isDisabled = this.osdOverlayPlugin.disabledOverlays.includes(this.uuid)\n return !isDisabled\n }\n}","import 'whatwg-fetch' // Polyfill fetch for IE11\nimport { decode } from \"@msgpack/msgpack\";\n\nimport { addInfoBox, addMouseTracker } from '../lib/anno2/common/utils';\nimport { Anno2Manager } from '../lib/anno2/Anno2Manager';\n\n\n// DO NOT REMOVE: Call decode once, to make sure (?) Babel.js notices and adds the needed polyfills for IE11\nconsole.log(\"Anno2 loaded\", decode(new Uint8Array([128])), Array.from([123]), Uint8Array.from([123]), \"MODE:\", process.env.NODE_ENV)\n\n// Load the OpenSeaDragon filters once the page is loaded, and add a handler\n// to the viewer to reload the filters once opened\n$(document).on(\"viewer-open\", () => {\n addInfoBox()\n setTimeout(addMouseTracker, 1000)\n const anno2Manager = new Anno2Manager(window['viewer'])\n window['anno2Manager'] = anno2Manager\n})\n"],"names":["isCallable","tryToString","$TypeError","TypeError","module","exports","argument","isConstructor","$String","String","wellKnownSymbol","create","defineProperty","UNSCOPABLES","ArrayPrototype","Array","prototype","undefined","configurable","value","key","charAt","S","index","unicode","length","isPrototypeOf","it","Prototype","isObject","ArrayBuffer","DataView","fails","buffer","Object","isExtensible","NAME","Constructor","NATIVE_ARRAY_BUFFER","DESCRIPTORS","global","hasOwn","classof","createNonEnumerableProperty","defineBuiltIn","getPrototypeOf","setPrototypeOf","uid","InternalStateModule","enforceInternalState","enforce","getInternalState","get","Int8Array","Int8ArrayPrototype","Uint8ClampedArray","Uint8ClampedArrayPrototype","TypedArray","TypedArrayPrototype","ObjectPrototype","TO_STRING_TAG","TYPED_ARRAY_TAG","NATIVE_ARRAY_BUFFER_VIEWS","opera","TYPED_ARRAY_TAG_REQUIRED","TypedArrayConstructorsList","Uint8Array","Int16Array","Uint16Array","Int32Array","Uint32Array","Float32Array","Float64Array","BigIntArrayConstructorsList","BigInt64Array","BigUint64Array","getTypedArrayConstructor","proto","state","isTypedArray","klass","Function","this","aTypedArray","aTypedArrayConstructor","C","exportTypedArrayMethod","KEY","property","forced","options","ARRAY","TypedArrayConstructor","error","error2","exportTypedArrayStaticMethod","isView","uncurryThis","FunctionName","defineBuiltIns","anInstance","toIntegerOrInfinity","toLength","toIndex","IEEE754","getOwnPropertyNames","arrayFill","arraySlice","setToStringTag","PROPER_FUNCTION_NAME","PROPER","CONFIGURABLE_FUNCTION_NAME","CONFIGURABLE","setInternalState","set","ARRAY_BUFFER","WRONG_INDEX","NativeArrayBuffer","$ArrayBuffer","ArrayBufferPrototype","$DataView","DataViewPrototype","RangeError","fill","reverse","packIEEE754","pack","unpackIEEE754","unpack","packInt8","number","packInt16","packInt32","unpackInt32","packFloat32","packFloat64","addGetter","view","count","isLittleEndian","intIndex","store","byteLength","bytes","start","byteOffset","conversion","i","INCORRECT_ARRAY_BUFFER_NAME","name","NaN","keys","j","constructor","testView","$setInt8","setInt8","getInt8","setUint8","unsafe","bufferLength","offset","getUint8","getInt16","arguments","getUint16","getInt32","getUint32","getFloat32","getFloat64","setInt16","setUint16","setInt32","setUint32","setFloat32","setFloat64","toObject","toAbsoluteIndex","lengthOfArrayLike","deletePropertyOrThrow","min","Math","copyWithin","target","O","len","to","from","end","inc","argumentsLength","endPos","$forEach","STRICT_METHOD","arrayMethodIsStrict","forEach","callbackfn","list","result","bind","call","callWithSafeIterationClosing","isArrayIteratorMethod","createProperty","getIterator","getIteratorMethod","$Array","arrayLike","IS_CONSTRUCTOR","mapfn","mapping","step","iterator","next","iteratorMethod","done","toIndexedObject","createMethod","IS_INCLUDES","$this","el","fromIndex","includes","indexOf","IndexedObject","arraySpeciesCreate","push","TYPE","IS_MAP","IS_FILTER","IS_SOME","IS_EVERY","IS_FIND_INDEX","IS_FILTER_REJECT","NO_HOLES","that","specificCreate","self","boundFunction","map","filter","some","every","find","findIndex","filterReject","apply","$lastIndexOf","lastIndexOf","NEGATIVE_ZERO","FORCED","searchElement","V8_VERSION","SPECIES","METHOD_NAME","array","foo","Boolean","method","aCallable","IS_RIGHT","memo","left","right","max","k","fin","n","slice","floor","mergeSort","comparefn","middle","insertionSort","merge","element","llength","rlength","lindex","rindex","isArray","originalArray","arraySpeciesConstructor","anObject","iteratorClose","fn","ENTRIES","ITERATOR","SAFE_CLOSING","called","iteratorWithReturn","exec","SKIP_CLOSING","ITERATION_SUPPORT","object","uncurryThisRaw","toString","stringSlice","TO_STRING_TAG_SUPPORT","classofRaw","$Object","CORRECT_ARGUMENTS","tag","tryGet","callee","isNullOrUndefined","iterate","defineIterator","createIterResultObject","setSpecies","fastKey","internalStateGetterFor","getterFor","getConstructor","wrapper","CONSTRUCTOR_NAME","ADDER","iterable","type","first","last","size","AS_ENTRIES","define","previous","entry","getEntry","removed","clear","data","prev","has","add","setStrong","ITERATOR_NAME","getInternalCollectionState","getInternalIteratorState","iterated","kind","getWeakData","ArrayIterationModule","splice","id","uncaughtFrozenStore","frozen","UncaughtFrozenStore","entries","findUncaughtFrozen","$","isForced","InternalMetadataModule","checkCorrectnessOfIteration","inheritIfRequired","common","IS_WEAK","NativeConstructor","NativePrototype","exported","fixMethod","uncurriedNativeMethod","enable","instance","HASNT_CHAINING","THROWS_ON_PRIMITIVES","ACCEPT_ITERABLES","BUGGY_ZERO","$instance","dummy","ownKeys","getOwnPropertyDescriptorModule","definePropertyModule","source","exceptions","f","getOwnPropertyDescriptor","MATCH","regexp","error1","F","requireObjectCoercible","quot","replace","string","attribute","p1","createPropertyDescriptor","bitmap","enumerable","writable","toPropertyKey","propertyKey","makeBuiltIn","defineGlobalProperty","simple","nonConfigurable","nonWritable","src","P","documentAll","document","all","IS_HTMLDDA","EXISTS","createElement","CSSRuleList","CSSStyleDeclaration","CSSValueList","ClientRectList","DOMRectList","DOMStringList","DOMTokenList","DataTransferItemList","FileList","HTMLAllCollection","HTMLCollection","HTMLFormElement","HTMLSelectElement","MediaList","MimeTypeArray","NamedNodeMap","NodeList","PaintRequestList","Plugin","PluginArray","SVGLengthList","SVGNumberList","SVGPathSegList","SVGPointList","SVGStringList","SVGTransformList","SourceBufferList","StyleSheetList","TextTrackCueList","TextTrackList","TouchList","classList","documentCreateElement","DOMTokenListPrototype","firefox","match","IS_DENO","IS_NODE","window","Deno","version","UA","test","userAgent","Pebble","process","getBuiltIn","versions","v8","split","webkit","copyConstructorProperties","targetProperty","sourceProperty","descriptor","TARGET","GLOBAL","STATIC","stat","dontCallGetSet","sham","regexpExec","RegExpPrototype","RegExp","SHAM","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","re","flags","uncurriedNativeRegExpMethod","methods","nativeMethod","str","arg2","forceStringMethod","$exec","preventExtensions","NATIVE_BIND","FunctionPrototype","Reflect","hasOwnProperty","$Function","concat","join","factories","construct","argsLength","args","partArgs","getDescriptor","uncurryThisWithBind","aFunction","namespace","getMethod","Iterators","usingIterator","V","func","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","matched","position","captures","namedCaptures","replacement","tailPos","m","symbols","ch","capture","check","globalThis","g","a","b","console","abs","pow","log","LN2","mantissaLength","exponent","mantissa","c","exponentLength","eMax","eBias","rt","sign","Infinity","nBits","propertyIsEnumerable","Wrapper","NewTarget","NewTargetPrototype","functionToString","inspectSource","hiddenKeys","getOwnPropertyNamesModule","getOwnPropertyNamesExternalModule","FREEZING","REQUIRED","METADATA","setMetadata","objectID","weakData","meta","onFreeze","NATIVE_WEAK_MAP","shared","sharedKey","OBJECT_ALREADY_INITIALIZED","WeakMap","metadata","facade","STATE","$documentAll","noop","empty","constructorRegExp","INCORRECT_TO_STRING","isConstructorModern","isConstructorLegacy","feature","detection","normalize","POLYFILL","NATIVE","toLowerCase","Number","isInteger","isFinite","isRegExp","USE_SYMBOL_AS_UID","$Symbol","Result","stopped","ResultPrototype","unboundFunction","iterFn","IS_RECORD","IS_ITERATOR","INTERRUPTED","stop","condition","callFn","innerResult","innerError","IteratorPrototype","returnThis","IteratorConstructor","ENUMERABLE_NEXT","IS_PURE","createIteratorConstructor","IteratorsCore","BUGGY_SAFARI_ITERATORS","KEYS","VALUES","Iterable","DEFAULT","IS_SET","CurrentIteratorPrototype","getIterationMethod","KIND","defaultIterator","IterablePrototype","INCORRECT_VALUES_NAME","nativeIterator","anyNativeIterator","values","PrototypeOfArrayIteratorPrototype","arrayIterator","obj","CONFIGURABLE_LENGTH","TEMPLATE","getter","setter","arity","ceil","trunc","x","flush","head","notify","toggle","node","promise","then","macrotask","IS_IOS","IS_IOS_PEBBLE","IS_WEBOS_WEBKIT","MutationObserver","WebKitMutationObserver","Promise","queueMicrotaskDescriptor","queueMicrotask","parent","domain","exit","enter","resolve","nextTick","createTextNode","observe","characterData","task","PromiseCapability","reject","$$resolve","$$reject","objectKeys","getOwnPropertySymbolsModule","propertyIsEnumerableModule","$assign","assign","A","B","symbol","Symbol","alphabet","chr","T","getOwnPropertySymbols","activeXDocument","definePropertiesModule","enumBugKeys","html","IE_PROTO","EmptyConstructor","scriptTag","content","LT","NullProtoObjectViaActiveX","write","close","temp","parentWindow","NullProtoObject","ActiveXObject","iframeDocument","iframe","style","display","appendChild","contentWindow","open","Properties","V8_PROTOTYPE_DEFINE_BUG","defineProperties","props","IE8_DOM_DEFINE","$defineProperty","$getOwnPropertyDescriptor","Attributes","current","$getOwnPropertyNames","windowNames","getWindowNames","internalObjectKeys","CORRECT_PROTOTYPE_GETTER","ARRAY_BUFFER_NON_EXTENSIBLE","$isExtensible","FAILS_ON_PRIMITIVES","names","$propertyIsEnumerable","NASHORN_BUG","aPossiblePrototype","CORRECT_SETTER","__proto__","TO_ENTRIES","input","pref","val","valueOf","NativePromiseConstructor","IS_BROWSER","NativePromisePrototype","SUBCLASSING","NATIVE_PROMISE_REJECTION_EVENT","PromiseRejectionEvent","FORCED_PROMISE_CONSTRUCTOR","PROMISE_CONSTRUCTOR_SOURCE","GLOBAL_CORE_JS_PROMISE","FakePromise","CONSTRUCTOR","REJECTION_EVENT","newPromiseCapability","promiseCapability","Queue","tail","item","R","re1","re2","regexpFlags","stickyHelpers","UNSUPPORTED_DOT_ALL","UNSUPPORTED_NCG","nativeReplace","nativeExec","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","reCopy","group","raw","groups","sticky","charsAdded","strCopy","multiline","hasIndices","ignoreCase","dotAll","unicodeSets","regExpFlags","$RegExp","MISSED_STICKY","TAG","SHARED","mode","copyright","license","aConstructor","defaultConstructor","charCodeAt","CONVERT_TO_STRING","pos","second","codeAt","$RangeError","SymbolPrototype","TO_PRIMITIVE","hint","NATIVE_SYMBOL","keyFor","$location","defer","channel","port","validateArgumentsLength","setImmediate","clearImmediate","Dispatch","MessageChannel","counter","queue","location","run","runner","listener","event","post","postMessage","protocol","host","handler","now","port2","port1","onmessage","addEventListener","importScripts","removeChild","setTimeout","integer","toPrimitive","prim","BigInt","toPositiveInteger","BYTES","isSymbol","ordinaryToPrimitive","exoticToPrim","TYPED_ARRAYS_CONSTRUCTORS_REQUIRES_WRAPPERS","ArrayBufferViewCore","ArrayBufferModule","isIntegralNumber","toOffset","typedArrayFrom","nativeDefineProperty","nativeGetOwnPropertyDescriptor","round","BYTES_PER_ELEMENT","WRONG_LENGTH","fromList","isArrayBuffer","isTypedArrayIndex","wrappedGetOwnPropertyDescriptor","wrappedDefineProperty","CLAMPED","GETTER","SETTER","NativeTypedArrayConstructor","TypedArrayConstructorPrototype","addElement","typedArrayOffset","$length","$len","arrayFromConstructorAndList","typedArraySpeciesConstructor","isBigIntArray","toBigInt","thisIsBigIntArray","speciesConstructor","postfix","random","passed","required","path","wrappedWellKnownSymbolModule","WellKnownSymbolsStore","symbolFor","createWellKnownSymbol","withoutSetter","description","arrayBufferModule","doesNotExceedSafeInteger","arrayMethodHasSpeciesSupport","IS_CONCAT_SPREADABLE","IS_CONCAT_SPREADABLE_SUPPORT","SPECIES_SUPPORT","isConcatSpreadable","spreadable","arg","E","addToUnscopables","$filter","$includes","ARRAY_ITERATOR","Arguments","nativeJoin","ES3_STRINGS","separator","$map","nativeSlice","HAS_SPECIES_SUPPORT","FUNCTION_NAME_EXISTS","nameRE","regExpExec","$stringify","numberToString","tester","low","hi","WRONG_SYMBOLS_CONVERSION","ILL_FORMED_UNICODE","stringifyWithSymbolsFix","replacer","$replacer","fixIllFormed","stringify","space","JSON","collection","init","thisNumberValue","$repeat","repeat","nativeToFixed","toFixed","acc","multiply","c2","divide","dataToString","s","t","fractionDigits","e","z","fractDigits","x2","$entries","$getOwnPropertySymbols","nativeGetPrototypeOf","nativeKeys","newPromiseCapabilityModule","perform","allSettled","capability","promiseResolve","remaining","alreadyCalled","status","reason","$promiseResolve","real","onRejected","Internal","OwnPromiseCapability","nativeThen","microtask","hostReportErrors","PromiseConstructorDetection","PROMISE","NATIVE_PROMISE_SUBCLASSING","getInternalPromiseState","PromiseConstructor","PromisePrototype","newGenericPromiseCapability","DISPATCH_EVENT","createEvent","dispatchEvent","UNHANDLED_REJECTION","isThenable","callReaction","reaction","exited","ok","fail","rejection","onHandleUnhandled","isReject","notified","reactions","onUnhandled","initEvent","isUnhandled","emit","unwrap","internalReject","internalResolve","executor","onFulfilled","PromiseWrapper","wrap","race","r","PromiseConstructorWrapper","CHECK_WRAPPER","nativeConstruct","NEW_TARGET_BUG","ARGS_BUG","Target","newTarget","$args","nativeTest","$toString","getRegExpFlags","TO_STRING","nativeToString","NOT_GENERIC","INCORRECT_NAME","createHTML","forcedStringHTMLMethod","fontsize","notARegExp","correctIsRegExpLogic","stringIndexOf","searchString","STRING_ITERATOR","point","fixRegExpWellKnownSymbolLogic","advanceStringIndex","getSubstitution","REPLACE","REPLACE_KEEPS_$0","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","_","maybeCallNative","UNSAFE_SUBSTITUTE","searchValue","replaceValue","rx","res","functionalReplace","fullUnicode","results","accumulatedResult","nextSourcePosition","replacerArgs","nativeStartsWith","startsWith","CORRECT_IS_REGEXP_LOGIC","search","defineWellKnownSymbol","nativeObjectCreate","getOwnPropertyNamesExternal","defineSymbolToPrimitive","HIDDEN","QObject","nativeGetOwnPropertyNames","nativePropertyIsEnumerable","AllSymbols","ObjectPrototypeSymbols","USE_SETTER","findChild","setSymbolDescriptor","ObjectPrototypeDescriptor","$defineProperties","properties","IS_OBJECT_PROTOTYPE","useSetter","useSimple","NativeSymbol","EmptyStringDescriptionStore","SymbolWrapper","thisSymbolValue","symbolDescriptiveString","desc","NATIVE_SYMBOL_REGISTRY","StringToSymbolRegistry","SymbolToStringRegistry","sym","u$ArrayCopyWithin","$every","$fill","actualValue","fromSpeciesAndList","$findIndex","predicate","$find","createTypedArrayConstructor","$indexOf","ArrayIterators","arrayValues","arrayKeys","arrayEntries","GENERIC","ITERATOR_IS_VALUES","typedArrayValues","$join","$reduceRight","$reduce","$set","WORKS_WITH_OBJECTS_AND_GEERIC_ON_TYPED_ARRAYS","TO_OBJECT_BUG","$some","internalSort","FF","IE_OR_EDGE","V8","WEBKIT","nativeSort","sort","ACCEPT_INCORRECT_ARGUMENTS","STABLE_SORT","mod","expected","y","getSortCompare","begin","beginIndex","$toLocaleString","toLocaleString","TO_LOCALE_STRING_BUG","Uint8ArrayPrototype","arrayToString","IS_NOT_ARRAY_METHOD","DOMIterables","handlePrototype","CollectionPrototype","COLLECTION_NAME","ArrayIteratorMethods","ArrayValues","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","support","Blob","viewClasses","isArrayBufferView","normalizeName","normalizeValue","iteratorFor","items","shift","Headers","headers","append","header","consumed","body","bodyUsed","fileReaderReady","reader","onload","onerror","readBlobAsArrayBuffer","blob","FileReader","readAsArrayBuffer","bufferClone","buf","Body","_initBody","_bodyInit","_bodyText","_bodyBlob","FormData","_bodyFormData","URLSearchParams","_bodyArrayBuffer","rejected","Error","arrayBuffer","text","readAsText","chars","fromCharCode","readArrayBufferAsText","formData","decode","json","parse","oldValue","callback","thisArg","Request","upcased","url","credentials","signal","toUpperCase","referrer","cache","reParamSearch","Date","getTime","form","trim","decodeURIComponent","Response","bodyInit","statusText","clone","response","redirectStatuses","redirect","DOMException","err","message","stack","request","aborted","xhr","XMLHttpRequest","abortXhr","abort","rawHeaders","getAllResponseHeaders","substr","line","parts","responseURL","responseText","ontimeout","onabort","href","fixUrl","withCredentials","responseType","setRequestHeader","onreadystatechange","readyState","removeEventListener","send","prettyByte","byte","padStart","polyfill","fetch","extendStatics","ExtData","__extends","d","p","__","DecodeError","_super","_this","UINT32_MAX","getInt64","_a","_b","_c","timestampExtension","encode","msec","sec","nsec","nsecInSec","rv","secHigh","secLow","high","setInt64","encodeTimeSpecToTimestamp","timeSpec","nsec30AndSecHigh2","decodeTimestampToTimeSpec","ExtensionCodec","builtInEncoders","builtInDecoders","encoders","decoders","register","tryToEncode","context","encodeExt","decodeExt","defaultCodec","TEXT_ENCODING_AVAILABLE","env","TextEncoder","TextDecoder","sharedTextEncoder","utf8DecodeJs","inputOffset","units","byte1","byte2","byte3","unit","encodeInto","sharedTextDecoder","TEXT_DECODER_THRESHOLD","ensureUint8Array","CachedKeyDecoder","maxKeyLength","maxLengthPerKey","hit","miss","caches","canBeCached","FIND_CHUNK","_i","records_1","record","recordBytes","records","cachedValue","slicedCopyOfBytes","__generator","label","sent","trys","ops","verb","v","op","pop","__asyncValues","o","asyncIterator","__values","settle","__await","__asyncGenerator","_arguments","generator","q","resume","fulfill","EMPTY_VIEW","EMPTY_BYTES","DataViewIndexOutOfBoundsError","MORE_DATA","sharedCachedKeyDecoder","Decoder","extensionCodec","maxStrLength","maxBinLength","maxArrayLength","maxMapLength","maxExtLength","keyDecoder","totalPos","headByte","reinitializeState","setBuffer","bufferView","createDataView","appendBuffer","hasRemaining","remainingData","subarray","newData","newBuffer","createExtraByteError","posToShow","doDecodeSync","decodeMulti","decodeAsync","stream","stream_1","stream_1_1","e_1","decoded","e_1_1","return","fulfilled","decodeArrayStream","decodeMultiAsync","decodeStream","isArrayHeaderRequired","arrayItemsLeft","stream_2","stream_2_1","e_2","e_3_1","e_3","readArraySize","complete","DECODE","readHeadByte","pushMapState","pushArrayState","decodeUtf8String","readF32","readF64","readU8","readU16","readU32","readU64","readI8","readI16","readI32","readI64","lookU8","lookU16","lookU32","decodeBinary","decodeExtension","keyType","readCount","headerOffset","stateIsMapKey","stringBytes","utf8DecodeTD","headOffset","extType","defaultDecodeOptions","getTileRange","tileTopLeft","tileBottomRight","tileWidth","tileHeight","addMouseTracker","performance","DEFAULT_COLOR_POLYGONS","DEFAULT_COLOR_MASK","copyCtx","origCtx","copyOverImage","willReadFrequently","canvas","width","height","newCtx","getContext","drawImage","parseColor","colorStr","rgbParts","parseInt","parseFloat","ONE_MB","STEP_SIZE","EfficientArray","valueArrayConstructor","valuesArray","offsetArray","curOffsetIndex","numNewElements","numBytesNeeded","stepSize","numNewBytes","newBuf","newView","PolygonContainer","indices","polygons","presentPolygonI","vertices","getValues","negativePolygonIs","negativePolygons","negativeI","warn","range","getOnlyBig","tiles","bigTiles","allTiles","allPresentIndices","Set","getPolygonsIinTileRange","getPolygonsFromIndices","readBit","arr","byteI","decodeRaw","encoded","num","newOffset","newNum","readBits","BufReader","numBytes","pointer","readInt","read","readEncArr","arrByteLen","rawNums","numBitsAvailable","nums","finalizeDecodeWithType","omegaDecode","reviveMaskFromTar","tarBuf","maskArr","u8","headerFormat","fileName","octalFileLength","fileNumBytes","fileBuf","fileNameParts","xI","yI","polygonReviver","tilePolygonIndices","bigTilePolygonIndices","encodedPolygons","polyCont","row","typedArrayReviver","encodedPolygon","tileSize","numRows","numCols","polygon_lengths_byte_len","polygon_lengths_bytes","polygonLengths","xJumps","yJumps","num_points_in_tile","remaindersLen","remainders","readFromBytes","tile_x","tile_y","num_points","curPolygon","remainder_i","num_points_in_this_tile","img_x","img_y","addValues","decodePolygons","decodePolygonsFromBytes","bytesView","DecodeStream","eof","requested","buffer2","ensureBuffer","readBlock","bufEnd","codeLenCodeMap","lengthDecode","distDecode","fixedLitCodeTab","fixedDistCodeTab","FlateStream","bytesPos","cmf","flg","codeSize","codeBuf","bits","table","codes","maxLen","code","codeLen","codeVal","lengths","skip","code2","what","getBits","hdr","litCodeTable","distCodeTable","numLitCodes","numDistCodes","numCodeLenCodes","codeLenCodeLengths","codeLenCodeTab","generateHuffmanTable","codeLengths","getCode","limit","code1","dist","blockLen","PNG","palette","imgData","transparency","animation","frame","chunkSize","readUInt32","section","_results","colorType","compressionMethod","filterMethod","interlaceMethod","numFrames","numPlays","frames","xOffset","yOffset","delayNum","readUInt16","delayDen","delay","disposeOp","blendOp","indexed","short","_j","grayscale","rgb","colors","hasAlphaChannel","pixelBitlength","colorSpace","getBytes","col","paeth","upper","upperLeft","pixelBytes","scanlineLength","pixels","_k","_l","_m","pa","pb","pc","_ref","_ref1","frameCount","decodedFrames","decodePixels","decodePNG","pngBytes","pixelsPerByte","pngData","ctx","imgd","getImageData","pix","pixelI","color","dataPixelByteI","pixelByte","inByteI","isBitSet","putImageData","fetchAndUnpack","rawResp","reponseBlob","CollectGarbage","fetchLookupTablesProgressively","uuid","coarse","fetchDensityPNG","fine","annoUrlPrefix","respBody","isCanvasBroken","pngCanvas","tile_size","before","newImgData","fetchMaskItemData","resp","masks","fetchPolygonsAndRevive","folder","prefix","promises","bigPolygonIndices","encodedPolygonsBuf","polygonContainer","fetchHeatmapData","sizePerPixel","img","fetchLabels","labelsFetch","labels","getData","systemMetadata","densityTablesProms","itemDataProm","lookupTableProms","numItems","turboColorMap","hasOverlap","rectA","rectB","r1Left","r1Right","r1Top","r1Bottom","r2Left","r2Right","r2Top","r2Bottom","OSDOverlayPlugin","viewer","tileCache","_imagesLoaded","forceRedraw","newOverlay","allOverlays","disabledOverlays","forceReload","curOverlayInstance","inUseOverlays","addHandler","ev","cacheRecord","getImageRecord","tile","cacheKey","renderedCtx","rendered","overlay","alert","t0","PushAbleUint32Array","numMaxEntries","getSqDist","points","p1Index","p2Index","dx","dy","getSqSegDist","pointI","p1i","p2i","px","py","p1x","p1y","p2x","p2y","simplifyDPStep","firstI","lastI","sqTolerance","simplified","farPointIndex","maxSqDist","sqDist","simplifyDouglasPeucker","squish","simplify","tolerance","highestQuality","newPoints","prevPointI","numNewPoints","isFarPoint","isLastPoint","simplifyRadialDist","densityFilter","openSeaDragonTileSize","lookupTables","colorOptions","desiredDensity","bestDensityOption","reduce","curBest","curr","curSize","curDiff","bestSize","sx","sy","sWidth","sHeight","newTileCtx","fillStyle","fillColor","pixVal","relativeIntensity","densityFill","turboI","turboColors","convertToDensityMask","drawLabel","tileRect","xInTile","yInTile","xRatioInTile","yRatioInTile","canvasX","canvasY","labelDims","getLabelDims","labelBoundWidth","padding","globalAlpha","fillRect","strokeStyle","strokeRect","curY","fillText","lines","curWidest","curLineWidth","measureText","polygonFilterRaw","fixedLineWidth","useBigPolygons","polyRange","tileFactor","sqrt","defaultLineWidth","lineWidth","polygonCandidates","polygon","relevantPolylines","simplifyPolygon","canvasVertices","convertImageVertices2canvas","drawPolygon","simplifiedPolygonCache","Map","imageVertices","Direction","getPointDir","xImg","yImg","Right","Left","Below","Above","Inside","t1","relevantLines","curLine","lastDirection","pointDir","lineCanCrossTile","cur","positiveVertices","negativeVerticesArr","positiveAlpha","coloring","outlineAlpha","drawPolygonRaw","canvasTemp","ctxTemp","negativeVertices","globalCompositeOperation","allLines","fillAlpha","strokeAlpha","origGlobalAlpha","beginPath","moveTo","lineTo","stroke","polyLines","canvasLine","newXY","drawRawPoints","pointsInTile","yPointInTile","ratioX","ratioY","canvasXstart","canvasYstart","rect","closePath","drawPngOverCanvas","divider","imgSize","positiveColor","convertToTransparentMask","png2rawPoints","maxNumPoints","pointsLen","pixI","Anno2Manager","osdOverlayPlugin","lineThickness","overlays","isVisible","show","Anno2Overlay","updateOverlay","passedColor","dataPromises","defaultColor","setColor","lookupTableProm","finishedLookupTable","availableData","update","itemData","getOverlayEnabler","enabler","getOverlayDisabler","disabler","newColor","minValue","heatmapCanvas","heatmapCtx","threshold","passedAlpha","pixelIntensity","alpha","mapColorTurbo","mapColor","heatmapData","save","viewport","vc2ic","viewportToImageCoordinates","bounds","getTopLeft","getSize","curTileRect","OpenSeadragon","Rect","heatMapRect","heatmap","tileCtx","tileBoundBox","heatmapBoundBox","pixelated","boundRatioX","boundRatioY","ratioWidth","boundRatioWidth","ratioHeight","boundRatioHeight","sourceX","sourceY","destX","destY","destWidth","destHeight","imageSmoothingEnabled","drawHeatmap","restore","heatmapFilter","maskData","level","getBottomRight","showDensity","maskWidth","maskHeight","curTileMask","maskFilterRaw","maskFilter","polygonData","zoomLevel","font","labelFilter","polygonFilter","circlesData","fixedCircleSize","tileCircleRadius","tileDelta","tileXoffset","tileYoffset","rawPoints","imgX","imgY","arc","PI","circleFilterRaw","circleFilter","on","anno2Manager"],"sourceRoot":""}