{ "version": 3, "sources": ["../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/adapters.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/logger.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/connection_monitor.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/internal.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/connection.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/subscription.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/subscription_guarantor.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/subscriptions.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/consumer.js", "../../../node_modules/.pnpm/@rails+actioncable@8.1.301/node_modules/@rails/actioncable/src/index.js", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/utils.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/_md.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/_u64.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/sha2.ts", "../../../node_modules/.pnpm/bech32@2.0.0/node_modules/bech32/dist/index.js", "../../../node_modules/.pnpm/@cosmjs+encoding@0.32.4/node_modules/@cosmjs/encoding/src/ascii.ts", "../../../node_modules/.pnpm/base64-js@1.5.1/node_modules/base64-js/index.js", "../../../node_modules/.pnpm/@cosmjs+encoding@0.32.4/node_modules/@cosmjs/encoding/src/base64.ts", "../../../node_modules/.pnpm/bech32@1.1.4/node_modules/bech32/index.js", "../../../node_modules/.pnpm/@cosmjs+encoding@0.32.4/node_modules/@cosmjs/encoding/src/bech32.ts", "../../../node_modules/.pnpm/@cosmjs+encoding@0.32.4/node_modules/@cosmjs/encoding/src/hex.ts", "../../../node_modules/.pnpm/@cosmjs+encoding@0.32.4/node_modules/@cosmjs/encoding/src/rfc3339.ts", "../../../node_modules/.pnpm/@cosmjs+encoding@0.32.4/node_modules/@cosmjs/encoding/src/utf8.ts", "../../../node_modules/.pnpm/@cosmjs+encoding@0.32.4/node_modules/@cosmjs/encoding/src/index.ts", "../../../node_modules/.pnpm/bn.js@5.2.5/node_modules/bn.js/lib/bn.js", "../../../node_modules/.pnpm/@cosmjs+math@0.32.4/node_modules/@cosmjs/math/src/decimal.ts", "../../../node_modules/.pnpm/@cosmjs+math@0.32.4/node_modules/@cosmjs/math/src/integers.ts", "../../../node_modules/.pnpm/@cosmjs+math@0.32.4/node_modules/@cosmjs/math/src/index.ts", "../../../node_modules/.pnpm/ieee754@1.2.1/node_modules/ieee754/index.js", "../../../node_modules/.pnpm/buffer@6.0.3/node_modules/buffer/index.js", "../../../node_modules/.pnpm/cashaddrjs@0.4.4/node_modules/cashaddrjs/src/validation.js", "../../../node_modules/.pnpm/cashaddrjs@0.4.4/node_modules/cashaddrjs/src/base32.js", "../../../node_modules/.pnpm/big-integer@1.6.36/node_modules/big-integer/BigInteger.js", "../../../node_modules/.pnpm/cashaddrjs@0.4.4/node_modules/cashaddrjs/src/convertBits.js", "../../../node_modules/.pnpm/cashaddrjs@0.4.4/node_modules/cashaddrjs/src/cashaddr.js", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/data/isHex.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/data/size.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/errors/version.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/errors/base.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/errors/abi.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/errors/data.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/data/pad.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/errors/encoding.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/encoding/fromHex.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/encoding/toHex.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/encoding/toBytes.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/sha3.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/hash/keccak256.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/errors/address.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/lru.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/address/getAddress.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/address/isAddress.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/data/concat.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/data/slice.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/regex.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/abi/encodeAbiParameters.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/stringify.ts", "../../../node_modules/.pnpm/@protobufjs+aspromise@1.1.2/node_modules/@protobufjs/aspromise/index.js", "../../../node_modules/.pnpm/@protobufjs+base64@1.1.2/node_modules/@protobufjs/base64/index.js", "../../../node_modules/.pnpm/@protobufjs+eventemitter@1.1.1/node_modules/@protobufjs/eventemitter/index.js", "../../../node_modules/.pnpm/@protobufjs+float@1.0.2/node_modules/@protobufjs/float/index.js", "../../../node_modules/.pnpm/@protobufjs+inquire@1.1.2/node_modules/@protobufjs/inquire/index.js", "../../../node_modules/.pnpm/@protobufjs+utf8@1.1.2/node_modules/@protobufjs/utf8/index.js", "../../../node_modules/.pnpm/@protobufjs+pool@1.1.0/node_modules/@protobufjs/pool/index.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/util/longbits.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/util/minimal.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/writer.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/writer_buffer.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/reader.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/reader_buffer.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/rpc/service.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/rpc.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/roots.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/src/index-minimal.js", "../../../node_modules/.pnpm/protobufjs@6.11.6/node_modules/protobufjs/minimal.js", "../../../node_modules/.pnpm/@confio+ics23@0.6.8/node_modules/@confio/ics23/build/generated/codecimpl.js", "../../../node_modules/.pnpm/@confio+ics23@0.6.8/node_modules/@confio/ics23/src/compress.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/crypto.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/utils.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/_md.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/legacy.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/ripemd160.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/_u64.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/sha2.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/sha256.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/sha512.ts", "../../../node_modules/.pnpm/@confio+ics23@0.6.8/node_modules/@confio/ics23/src/ops.ts", "../../../node_modules/.pnpm/@confio+ics23@0.6.8/node_modules/@confio/ics23/src/specs.ts", "../../../node_modules/.pnpm/@confio+ics23@0.6.8/node_modules/@confio/ics23/src/proofs.ts", "../../../node_modules/.pnpm/@confio+ics23@0.6.8/node_modules/@confio/ics23/src/ics23.ts", "../../../node_modules/.pnpm/@confio+ics23@0.6.8/node_modules/@confio/ics23/src/index.ts", "../../../node_modules/.pnpm/symbol-observable@2.0.3/node_modules/symbol-observable/lib/ponyfill.js", "../../../node_modules/.pnpm/symbol-observable@2.0.3/node_modules/symbol-observable/ponyfill.js", "../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/isArguments.js", "../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/implementation.js", "../../../node_modules/.pnpm/object-keys@1.1.1/node_modules/object-keys/index.js", "../../../node_modules/.pnpm/es-define-property@1.0.1/node_modules/es-define-property/index.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/syntax.js", "../../../node_modules/.pnpm/es-errors@1.3.0/node_modules/es-errors/type.js", "../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/gOPD.js", "../../../node_modules/.pnpm/gopd@1.2.0/node_modules/gopd/index.js", "../../../node_modules/.pnpm/define-data-property@1.1.4/node_modules/define-data-property/index.js", "../../../node_modules/.pnpm/has-property-descriptors@1.0.2/node_modules/has-property-descriptors/index.js", "../../../node_modules/.pnpm/define-properties@1.2.1/node_modules/define-properties/index.js", "../../../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/implementation.browser.js", "../../../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/polyfill.js", "../../../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/shim.js", "../../../node_modules/.pnpm/globalthis@1.0.4/node_modules/globalthis/index.js", "../../../node_modules/.pnpm/xstream@11.14.0/node_modules/xstream/src/index.ts", "../../../node_modules/.pnpm/@cosmjs+stream@0.32.4/node_modules/@cosmjs/stream/src/concat.ts", "../../../node_modules/.pnpm/@cosmjs+stream@0.32.4/node_modules/@cosmjs/stream/src/defaultvalueproducer.ts", "../../../node_modules/.pnpm/@cosmjs+stream@0.32.4/node_modules/@cosmjs/stream/src/dropduplicates.ts", "../../../node_modules/.pnpm/@cosmjs+stream@0.32.4/node_modules/@cosmjs/stream/src/promise.ts", "../../../node_modules/.pnpm/@cosmjs+stream@0.32.4/node_modules/@cosmjs/stream/src/reducer.ts", "../../../node_modules/.pnpm/@cosmjs+stream@0.32.4/node_modules/@cosmjs/stream/src/valueandupdates.ts", "../../../node_modules/.pnpm/@cosmjs+stream@0.32.4/node_modules/@cosmjs/stream/src/index.ts", "../../../node_modules/.pnpm/@cosmjs+json-rpc@0.32.4/node_modules/@cosmjs/json-rpc/src/id.ts", "../../../node_modules/.pnpm/@cosmjs+json-rpc@0.32.4/node_modules/@cosmjs/json-rpc/src/types.ts", "../../../node_modules/.pnpm/@cosmjs+json-rpc@0.32.4/node_modules/@cosmjs/json-rpc/src/jsonrpcclient.ts", "../../../node_modules/.pnpm/@cosmjs+json-rpc@0.32.4/node_modules/@cosmjs/json-rpc/src/compatibility.ts", "../../../node_modules/.pnpm/@cosmjs+json-rpc@0.32.4/node_modules/@cosmjs/json-rpc/src/parse.ts", "../../../node_modules/.pnpm/@cosmjs+json-rpc@0.32.4/node_modules/@cosmjs/json-rpc/src/index.ts", "../../../node_modules/.pnpm/react@19.2.8/node_modules/react/cjs/react.development.js", "../../../node_modules/.pnpm/react@19.2.8/node_modules/react/index.js", "../../../node_modules/.pnpm/react-dom@19.2.8_react@19.2.8/node_modules/react-dom/cjs/react-dom.development.js", "../../../node_modules/.pnpm/react-dom@19.2.8_react@19.2.8/node_modules/react-dom/index.js", "../../../node_modules/.pnpm/react-dom@19.2.8_react@19.2.8/node_modules/react-dom/cjs/react-dom-server-legacy.browser.development.js", "../../../node_modules/.pnpm/react-dom@19.2.8_react@19.2.8/node_modules/react-dom/cjs/react-dom-server.browser.development.js", "../../../node_modules/.pnpm/react-dom@19.2.8_react@19.2.8/node_modules/react-dom/server.browser.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/events/native.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/events/pjax.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/events/turbolinks.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/events/turbolinksClassicDeprecated.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/events/turbolinksClassic.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/events/detect.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/getConstructor/fromGlobal.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContext.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextWithGlobalFallback.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/getConstructor/fromRequireContextsWithGlobalFallback.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/supportsRootApi.js", "../../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/cjs/scheduler.development.js", "../../../node_modules/.pnpm/scheduler@0.27.0/node_modules/scheduler/index.js", "../../../node_modules/.pnpm/react-dom@19.2.8_react@19.2.8/node_modules/react-dom/cjs/react-dom-client.development.js", "../../../node_modules/.pnpm/react-dom@19.2.8_react@19.2.8/node_modules/react-dom/client.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/reactDomClient.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/src/renderHelpers.js", "../../../node_modules/.pnpm/react_ujs@3.3.1/node_modules/react_ujs/react_ujs/index.js", "../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/cjs/react-is.development.js", "../../../node_modules/.pnpm/react-is@16.13.1/node_modules/react-is/index.js", "../../../node_modules/.pnpm/object-assign@4.1.1/node_modules/object-assign/index.js", "../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/ReactPropTypesSecret.js", "../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/lib/has.js", "../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/checkPropTypes.js", "../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/factoryWithTypeCheckers.js", "../../../node_modules/.pnpm/prop-types@15.8.1/node_modules/prop-types/index.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_listCacheClear.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/eq.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_assocIndexOf.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_listCacheDelete.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_listCacheGet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_listCacheHas.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_listCacheSet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_ListCache.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_stackClear.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_stackDelete.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_stackGet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_stackHas.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_freeGlobal.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_root.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_Symbol.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getRawTag.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_objectToString.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseGetTag.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isObject.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isFunction.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_coreJsData.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_isMasked.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_toSource.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsNative.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getValue.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getNative.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_Map.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_nativeCreate.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_hashClear.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_hashDelete.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_hashGet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_hashHas.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_hashSet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_Hash.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_mapCacheClear.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_isKeyable.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getMapData.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_mapCacheDelete.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_mapCacheGet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_mapCacheHas.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_mapCacheSet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_MapCache.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_stackSet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_Stack.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_defineProperty.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseAssignValue.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_assignMergeValue.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_createBaseFor.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseFor.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_cloneBuffer.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_Uint8Array.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_cloneArrayBuffer.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_cloneTypedArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_copyArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseCreate.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_overArg.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getPrototype.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_isPrototype.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_initCloneObject.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isObjectLike.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsArguments.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isArguments.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isLength.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isArrayLike.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isArrayLikeObject.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/stubFalse.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isBuffer.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isPlainObject.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsTypedArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseUnary.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_nodeUtil.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isTypedArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_safeGet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_assignValue.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_copyObject.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseTimes.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_isIndex.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arrayLikeKeys.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_nativeKeysIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseKeysIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/keysIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/toPlainObject.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseMergeDeep.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseMerge.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/identity.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_apply.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_overRest.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/constant.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseSetToString.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_shortOut.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_setToString.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseRest.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_isIterateeCall.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_createAssigner.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/merge.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isSymbol.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_isKey.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/memoize.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_memoizeCapped.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_stringToPath.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arrayMap.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseToString.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/toString.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_castPath.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_toKey.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseGet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/get.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseSet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/set.js", "../../../node_modules/.pnpm/react@19.2.8/node_modules/react/cjs/react-jsx-runtime.development.js", "../../../node_modules/.pnpm/react@19.2.8/node_modules/react/jsx-runtime.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isString.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_setCacheAdd.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_setCacheHas.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_SetCache.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseFindIndex.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsNaN.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_strictIndexOf.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIndexOf.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arrayIncludes.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arrayIncludesWith.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_cacheHas.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseDifference.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/without.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/last.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_basePickBy.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseHasIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_hasPath.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/hasIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_basePick.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arrayPush.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_isFlattenable.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseFlatten.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/flatten.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_flatRest.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/pick.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arraySome.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_equalArrays.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_mapToArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_setToArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_equalByTag.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseGetAllKeys.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arrayFilter.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/stubArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getSymbols.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_nativeKeys.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseKeys.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/keys.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getAllKeys.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_equalObjects.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_DataView.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_Promise.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_Set.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_WeakMap.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getTag.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsEqualDeep.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsEqual.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isEqual.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arrayEach.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseAssign.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseAssignIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_copySymbols.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getSymbolsIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_copySymbolsIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getAllKeysIn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_initCloneArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_cloneDataView.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_cloneRegExp.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_cloneSymbol.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_initCloneByTag.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsMap.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isMap.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsSet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isSet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseClone.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseSlice.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_parent.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseUnset.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_customOmitClone.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/omit.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/cloneDeep.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_arrayReduce.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_basePropertyOf.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_deburrLetter.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/deburr.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_asciiWords.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_hasUnicodeWord.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_unicodeWords.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/words.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_createCompounder.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_castSlice.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_hasUnicode.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_asciiToArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_unicodeToArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_stringToArray.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_createCaseFirst.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/upperFirst.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/startCase.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/noop.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_createSet.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseUniq.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/uniq.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsMatch.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_isStrictComparable.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_getMatchData.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_matchesStrictComparable.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseMatches.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseMatchesProperty.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseProperty.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_basePropertyDeep.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/property.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIteratee.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/uniqBy.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseForOwn.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_createBaseEach.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseEach.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseMap.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseSortBy.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_compareAscending.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_compareMultiple.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseOrderBy.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/sortBy.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/_baseIsDate.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/isDate.js", "../../../node_modules/.pnpm/lodash@4.18.1/node_modules/lodash/uniqueId.js", "../../../node_modules/.pnpm/shadertoy-react@1.1.2_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/shadertoy-react/lib/shadertoy-react.min.js", "../../../node_modules/.pnpm/react-sparklines@1.7.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/react-sparklines/build/index.js", "../../../node_modules/.pnpm/@rails+ujs@7.1.600/node_modules/@rails/ujs/app/assets/javascripts/rails-ujs.esm.js", "../../../node_modules/.pnpm/@hotwired+turbo@8.0.23/node_modules/@hotwired/turbo/dist/turbo.es2017-esm.js", "../../../node_modules/.pnpm/@hotwired+turbo-rails@8.0.23/node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable.js", "../../../node_modules/.pnpm/@hotwired+turbo-rails@8.0.23/node_modules/@hotwired/turbo-rails/app/javascript/turbo/snakeize.js", "../../../node_modules/.pnpm/@hotwired+turbo-rails@8.0.23/node_modules/@hotwired/turbo-rails/app/javascript/turbo/cable_stream_source_element.js", "../../../node_modules/.pnpm/@hotwired+turbo-rails@8.0.23/node_modules/@hotwired/turbo-rails/app/javascript/turbo/fetch_requests.js", "../../../node_modules/.pnpm/@hotwired+turbo-rails@8.0.23/node_modules/@hotwired/turbo-rails/app/javascript/turbo/index.js", "../../../node_modules/.pnpm/@hotwired+stimulus@3.2.2/node_modules/@hotwired/stimulus/dist/stimulus.js", "../../javascript/controllers/application.js", "../../javascript/controllers/zoom_controller.js", "../../javascript/controllers/clickable_row_controller.js", "../../../node_modules/.pnpm/canvas-confetti@1.9.4/node_modules/canvas-confetti/dist/confetti.module.mjs", "../../javascript/controllers/portfolio_controller.js", "../../javascript/controllers/copy_controller.js", "../../javascript/controllers/confetti_controller.js", "../../javascript/controllers/trait_preview_controller.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/style-inject/dist/style-inject.es.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/global-this.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/fails.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-bind-native.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-apply.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-uncurry-this.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/classof-raw.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-uncurry-this-clause.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-callable.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/descriptors.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-call.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-property-is-enumerable.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/create-property-descriptor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/indexed-object.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-null-or-undefined.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/require-object-coercible.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-indexed-object.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-object.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/path.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/get-built-in.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-is-prototype-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/environment-user-agent.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/environment-v8-version.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/symbol-constructor-detection.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/use-symbol-as-uid.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-symbol.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/try-to-string.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/a-callable.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/get-method.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/ordinary-to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-pure.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/define-global-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/shared-store.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/shared.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-object.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/has-own-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/uid.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/well-known-symbol.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-property-key.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/document-create-element.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/ie8-dom-define.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-get-own-property-descriptor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-forced.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-bind-context.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/v8-prototype-define-bug.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/an-object.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-define-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/create-non-enumerable-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/export.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/math-trunc.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-integer-or-infinity.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-absolute-index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-length.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/length-of-array-like.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-includes.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/hidden-keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-keys-internal.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/enum-bug-keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-get-own-property-symbols.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-assign.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.assign.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/assign.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/assign.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/assign.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-slice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-bind.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.function.bind.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/get-built-in-prototype-method.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/function/virtual/bind.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/bind.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/bind.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/bind.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/shapes.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/component-emitter/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-array.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/does-not-exceed-safe-integer.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/create-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-string-tag-support.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/classof.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/inspect-source.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-constructor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-species-constructor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-species-create.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-method-has-species-support.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.concat.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/to-string.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-define-properties.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/html.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/shared-key.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-create.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-get-own-property-names.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-get-own-property-names-external.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/define-built-in.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/define-built-in-accessor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/well-known-symbol-wrapped.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/well-known-symbol-define.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/symbol-define-to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-to-string.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-to-string-tag.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/weak-map-basic-detection.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/internal-state.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-iteration.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.constructor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/symbol-registry-detection.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.for.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.key-for.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/get-json-replacer-function.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.json.stringify.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.get-own-property-symbols.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.async-dispose.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.async-iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.dispose.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.has-instance.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.is-concat-spreadable.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.match.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.match-all.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.replace.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.search.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.species.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.split.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.to-string-tag.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.symbol.unscopables.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.json.to-string-tag.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/symbol/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/add-to-unscopables.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/iterators.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-name.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/correct-prototype-getter.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-get-prototype-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/iterators-core.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/iterator-create-constructor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/function-uncurry-this-accessor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-possible-prototype.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/a-possible-prototype.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-set-prototype-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/iterator-define.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/create-iter-result-object.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/dom-iterables.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/web.dom-collections.iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/symbol/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/symbol.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.slice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/slice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/slice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/slice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/slice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/own-keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.reflect.own-keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/reflect/own-keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/reflect/own-keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/reflect/own-keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.is-array.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/is-array.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/array/is-array.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/array/is-array.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.date.now.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/date/now.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/date/now.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/date/now.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-method-is-strict.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-for-each.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.for-each.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/for-each.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/array/virtual/for-each.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/for-each.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/for-each.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.reverse.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/reverse.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/reverse.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/reverse.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reverse.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-set-length.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/delete-property-or-throw.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.splice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/splice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/splice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/splice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/splice.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.includes.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/includes.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-regexp.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/not-a-regexp.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/correct-is-regexp-logic.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.string.includes.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/string/virtual/includes.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/includes.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/includes.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/includes.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.get-prototype-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/get-prototype-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/get-prototype-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-prototype-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/concat.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/concat.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/concat.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/concat.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.filter.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/filter.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/filter.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/filter.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/filter.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-to-array.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.values.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/values.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/values.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/values.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/whitespaces.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/string-trim.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/number-parse-int.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.parse-int.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/parse-int.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/parse-int.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/parse-int.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.index-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/index-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/index-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/index-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/index-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.create.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/create.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/create.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/create.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/string-repeat.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/string-pad.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/date-to-iso-string.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.date.to-json.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/json/stringify.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/json/stringify.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/json/stringify.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/environment.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/validate-arguments-length.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/schedulers-fix.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/web.set-interval.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/web.set-timeout.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/web.timers.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/set-timeout.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/set-timeout.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-fill.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.fill.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/fill.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/fill.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/fill.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/fill.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@egjs/hammerjs/dist/hammer.esm.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/vis-util/esnext/esm/vis-util.mjs", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/dotparser.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/gephiParser.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/locales.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/locale-utils.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/CachedImage.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/Images.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-buffer-non-extensible.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/object-is-extensible.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/freezing.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/internal-metadata.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/is-array-iterator-method.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/get-iterator-method.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/get-iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/iterator-close.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/iterate.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/an-instance.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/collection.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/define-built-ins.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-species.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/collection-strong.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.map.constructor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/caller.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/map-helpers.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.map.group-by.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/string-multibyte.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.string.iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/map/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/map/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/Groups.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.number.is-nan.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/number/is-nan.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/number/is-nan.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-nan.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/number-is-finite.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.number.is-finite.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/number/is-finite.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/number/is-finite.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/number/is-finite.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.some.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/some.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/some.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/some.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/some.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/get-own-property-symbols.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/get-own-property-symbols.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-symbols.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.get-own-property-descriptor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/get-own-property-descriptor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/get-own-property-descriptor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.get-own-property-descriptors.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/get-own-property-descriptors.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/get-own-property-descriptors.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-descriptors.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.define-properties.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/define-properties.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/define-properties.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-properties.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.define-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/define-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/define-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/actual/object/define-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/full/object/define-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/features/object/define-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.function.metadata.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.async-dispose.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.dispose.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.metadata.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/actual/symbol/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/symbol-is-registered.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.is-registered-symbol.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/symbol-is-well-known.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.is-well-known-symbol.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.custom-matcher.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.observable.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.is-registered.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.is-well-known.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.matcher.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.metadata-key.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.pattern-match.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/esnext.symbol.replace-all.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/full/symbol/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/features/symbol/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/symbol/iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/symbol/iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/actual/symbol/iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/full/symbol/iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/features/symbol/iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/helpers/esm/typeof.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/symbol/to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/symbol/to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/actual/symbol/to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/full/symbol/to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/features/symbol/to-primitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/helpers/esm/toPrimitive.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/helpers/esm/toPropertyKey.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/helpers/esm/defineProperty.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-reduce.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/environment-is-node.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.reduce.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/reduce.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/reduce.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/reduce.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/reduce.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/flatten-into-array.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.flat-map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.unscopables.flat-map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/flat-map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/flat-map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/flat-map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/flat-map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/symbol/iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.constructor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/a-set.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-helpers.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/iterate-simple.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-iterate.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-clone.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-size.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/get-iterator-direct.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/get-set-record.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-difference.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-method-accept-set-like.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.difference.v2.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-intersection.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.intersection.v2.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-is-disjoint-from.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.is-disjoint-from.v2.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-is-subset-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.is-subset-of.v2.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-is-superset-of.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.is-superset-of.v2.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-symmetric-difference.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-method-get-keys-before-cloning-detection.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.symmetric-difference.v2.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/set-union.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.set.union.v2.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/set/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/set/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/set.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/get-iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/get-iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/actual/get-iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/full/get-iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/features/get-iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js/get-iterator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/array-sort.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/environment-ff-version.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/environment-is-ie-or-edge.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/environment-webkit-version.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.sort.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/sort.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/sort.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/sort.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/sort.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/array/virtual/keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/keys.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/values.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/array/virtual/values.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/values.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/values.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/entries.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/array/virtual/entries.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/entries.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/entries.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/define-property.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/uuid/dist/stringify.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/uuid/dist/rng.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/uuid/dist/v4.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/vis-data/esnext/esm/vis-data.mjs", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/number-parse-float.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.parse-float.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/parse-float.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/parse-float.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/parse-float.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.object.get-own-property-names.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/object/get-own-property-names.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/object/get-own-property-names.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/object/get-own-property-names.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/shared/ComponentUtil.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/shared/LabelAccumulator.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/shared/LabelSplitter.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/shared/Label.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/util/NodeBase.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Box.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/util/CircleImageBase.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Circle.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/CircularImage.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/util/ShapeBase.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/CustomShape.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Database.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Diamond.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Dot.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Ellipse.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Icon.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Image.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Square.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Hexagon.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Star.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Text.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/Triangle.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/shapes/TriangleDown.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/Node.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/NodesHandler.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.math.hypot.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/math/hypot.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/math/hypot.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/math/hypot.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/edges/util/end-points.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/edges/util/edge-base.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/edges/util/bezier-edge-base.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/edges/bezier-edge-dynamic.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/edges/bezier-edge-static.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/edges/util/cubic-bezier-edge-base.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/edges/cubic-bezier-edge.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/edges/straight-edge.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/Edge.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/EdgesHandler.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/physics/BarnesHutSolver.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/physics/RepulsionSolver.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/physics/HierarchicalRepulsionSolver.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/physics/SpringSolver.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/physics/HierarchicalSpringSolver.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/physics/CentralGravitySolver.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/physics/FA2BasedRepulsionSolver.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/physics/FA2BasedCentralGravitySolver.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/PhysicsEngine.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/NetworkUtil.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/nodes/Cluster.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/Clustering.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/CanvasRenderer.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/set-interval.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/set-interval.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/hammerUtil.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/Canvas.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/view-handler/index.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/View.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/keycharm/src/keycharm.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/NavigationHandler.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/InteractionHandler.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/internals/collection-weak.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.weak-map.constructor.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.weak-map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/weak-map/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/weak-map/index.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/weak-map.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/selection/selection-accumulator.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/SelectionHandler.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/DirectionStrategy.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/modules/es.array.every.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/array/virtual/every.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/es/instance/every.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/core-js-pure/stable/instance/every.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/node_modules/@babel/runtime-corejs3/core-js-stable/instance/every.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/layout-engine/index.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/LayoutEngine.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/ManipulationSystem.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/options.ts", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/components/algorithms/FloydWarshall.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/modules/KamadaKawai.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/network/Network.js", "../../../node_modules/.pnpm/vis-network@10.1.0_@egjs+hammerjs@2.0.17_component-emitter@2.0.0_keycharm@0.4.0_uuid@14_94e550e1046c6ed1fe616afcdac02cf4/node_modules/vis-network/lib/entry-esnext.ts", "../../javascript/controllers/pool_routes_network_controller.js", "../../javascript/controllers/denom_network_controller.js", "../../javascript/controllers/global_search_controller.js", "../../javascript/controllers/rujira_highcharts_volume_controller.js", "../../javascript/controllers/payments/quote_picker_controller.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/address.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/networks.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/index.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/bip66.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/ops.js", "../../../node_modules/.pnpm/uint8array-tools@0.0.9/node_modules/uint8array-tools/src/mjs/browser.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/push_data.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/script_number.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/script_signature.js", "../../../node_modules/.pnpm/valibot@0.38.0_typescript@7.0.2/node_modules/valibot/dist/index.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/types.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/script.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/lazy.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/embed.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/p2ms.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/p2pk.js", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/legacy.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/ripemd160.ts", "../../../node_modules/.pnpm/@noble+hashes@1.8.0/node_modules/@noble/hashes/src/sha256.ts", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/crypto.js", "../../../node_modules/.pnpm/base-x@5.0.1/node_modules/base-x/src/esm/index.js", "../../../node_modules/.pnpm/bs58@6.0.0/node_modules/bs58/src/esm/index.js", "../../../node_modules/.pnpm/bs58check@4.0.0/node_modules/bs58check/src/esm/base.js", "../../../node_modules/.pnpm/bs58check@4.0.0/node_modules/bs58check/src/esm/index.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/p2pkh.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/p2sh.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/p2wpkh.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/p2wsh.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/ecc_lib.js", "../../../node_modules/.pnpm/varuint-bitcoin@2.0.0/node_modules/varuint-bitcoin/src/esm/index.js", "../../../node_modules/.pnpm/uint8array-tools@0.0.8/node_modules/uint8array-tools/src/mjs/browser.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/bufferutils.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/bip341.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/payments/p2tr.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/transaction.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/block.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/index.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/typeFields.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/global/globalXpub.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/global/unsignedTx.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/finalScriptSig.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/finalScriptWitness.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/nonWitnessUtxo.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/partialSig.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/porCommitment.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/sighashType.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/tapKeySig.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/tapLeafScript.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/tapMerkleRoot.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/tapScriptSig.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/input/witnessUtxo.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/output/tapTree.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/shared/bip32Derivation.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/shared/checkPubkey.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/shared/redeemScript.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/shared/tapBip32Derivation.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/shared/tapInternalKey.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/shared/witnessScript.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/converter/tools.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/parser/fromBuffer.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/parser/toBuffer.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/combiner/index.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/utils.js", "../../../node_modules/.pnpm/bip174@3.0.0/node_modules/bip174/src/esm/lib/psbt.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/psbt/psbtutils.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/psbt/bip371.js", "../../../node_modules/.pnpm/bitcoinjs-lib@7.0.0-rc.0_typescript@7.0.2/node_modules/bitcoinjs-lib/src/esm/psbt.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/network.js", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/ethers.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/_version.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/properties.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/errors.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/data.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/maths.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/base58.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/base64-browser.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/events.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/utf8.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/geturl-browser.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/fetch.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/fixednumber.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/rlp-decode.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/rlp-encode.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/units.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/utils/uuid.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/abstract-coder.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/_assert.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/crypto.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/utils.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/hmac.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/pbkdf2.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/_sha2.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/sha256.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/_u64.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/sha512.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/crypto-browser.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/hmac.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/sha3.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/keccak.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/ripemd160.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/ripemd160.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/pbkdf2.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/random.ts", "../../../node_modules/.pnpm/@noble+hashes@1.3.2/node_modules/@noble/hashes/src/scrypt.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/scrypt.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/sha2.ts", "../../../node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/src/abstract/utils.ts", "../../../node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/src/abstract/modular.ts", "../../../node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/src/abstract/curve.ts", "../../../node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/src/abstract/weierstrass.ts", "../../../node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/src/_shortw_utils.ts", "../../../node_modules/.pnpm/@noble+curves@1.2.0/node_modules/@noble/curves/src/secp256k1.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/constants/addresses.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/constants/hashes.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/constants/numbers.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/constants/strings.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/signature.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/signing-key.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/crypto/index.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/address/address.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/address/contract-address.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/address/checks.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/typed.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/address.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/anonymous.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/array.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/boolean.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/bytes.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/fixed-bytes.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/null.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/number.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/string.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/coders/tuple.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/transaction/accesslist.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/transaction/authorization.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/transaction/address.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/transaction/transaction.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/hash/authorization.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/hash/id.ts", "../../../node_modules/.pnpm/@adraffy+ens-normalize@1.11.1/node_modules/@adraffy/ens-normalize/dist/index.mjs", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/hash/namehash.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/hash/message.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/hash/solidity.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/hash/typed-data.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/fragments.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/abi-coder.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/bytes32.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/abi/interface.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/contract/wrappers.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/contract/contract.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/contract/factory.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/ens-resolver.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/format.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/plugins-network.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/network.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/subscriber-polling.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/abstract-provider.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/abstract-signer.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/community.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/subscriber-filterid.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-jsonrpc.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-ankr.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-alchemy.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-chainstack.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-cloudflare.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-etherscan.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/ws-browser.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-socket.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-websocket.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-infura.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-quicknode.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-fallback.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/default-provider.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/signer-noncemanager.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-browser.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-blockscout.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-pocket.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/providers/provider-ipcsocket-browser.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wallet/base-wallet.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wordlists/decode-owl.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wordlists/wordlist.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wordlists/wordlist-owl.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wordlists/lang-en.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wallet/mnemonic.ts", "../../../node_modules/.pnpm/aes-js@4.0.0-beta.5/node_modules/aes-js/src.ts/aes.ts", "../../../node_modules/.pnpm/aes-js@4.0.0-beta.5/node_modules/aes-js/src.ts/mode.ts", "../../../node_modules/.pnpm/aes-js@4.0.0-beta.5/node_modules/aes-js/src.ts/mode-cbc.ts", "../../../node_modules/.pnpm/aes-js@4.0.0-beta.5/node_modules/aes-js/src.ts/mode-cfb.ts", "../../../node_modules/.pnpm/aes-js@4.0.0-beta.5/node_modules/aes-js/src.ts/mode-ctr.ts", "../../../node_modules/.pnpm/aes-js@4.0.0-beta.5/node_modules/aes-js/src.ts/padding.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wallet/utils.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wallet/json-keystore.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wallet/hdwallet.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wallet/json-crowdsale.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wallet/wallet.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wordlists/bit-reader.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wordlists/decode-owla.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wordlists/wordlist-owla.ts", "../../../node_modules/.pnpm/ethers@6.17.0/node_modules/ethers/src.ts/wordlists/wordlists-browser.ts", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/accounts.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/instantiate2.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/crypto/index.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/crypto/secp256k1signature.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/crypto/utils.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/crypto/sha.js", "../../../node_modules/.pnpm/long@5.3.2/node_modules/long/index.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/utils.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/msgs/deposit.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/utf8.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/varint.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/binary.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/helpers.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/base/v1beta1/coin.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/bank/v1beta1/tx.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/common/common.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/msg_deposit.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/evm/router.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/utxo/index.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/google/protobuf/any.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/google/protobuf/timestamp.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/authz/v1beta1/authz.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/authz/v1beta1/tx.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/msgs/exec.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmwasm/wasm/v1/types.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmwasm/wasm/v1/tx.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/ibc/core/client/v1/client.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/ibc/applications/transfer/v1/tx.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/msgs/send.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/prices.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/index.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/index.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/accounts.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/crypto/multisig/v1beta1/multisig.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/tx/signing/v1beta1/signing.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/tx/v1beta1/tx.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/proto-signing/eip712.js", "../../../node_modules/.pnpm/@noble+hashes@2.2.0/node_modules/@noble/hashes/src/utils.ts", "../../../node_modules/.pnpm/@noble+hashes@2.2.0/node_modules/@noble/hashes/src/_md.ts", "../../../node_modules/.pnpm/@noble+hashes@2.2.0/node_modules/@noble/hashes/src/sha2.ts", "../../../node_modules/.pnpm/@noble+curves@2.2.0/node_modules/@noble/curves/src/utils.ts", "../../../node_modules/.pnpm/@noble+curves@2.2.0/node_modules/@noble/curves/src/abstract/modular.ts", "../../../node_modules/.pnpm/@noble+curves@2.2.0/node_modules/@noble/curves/src/abstract/curve.ts", "../../../node_modules/.pnpm/@noble+hashes@2.2.0/node_modules/@noble/hashes/src/hmac.ts", "../../../node_modules/.pnpm/@noble+curves@2.2.0/node_modules/@noble/curves/src/abstract/weierstrass.ts", "../../../node_modules/.pnpm/@noble+curves@2.2.0/node_modules/@noble/curves/src/secp256k1.ts", "../../../node_modules/.pnpm/@ethereumjs+rlp@10.1.2/node_modules/@ethereumjs/rlp/src/errors.ts", "../../../node_modules/.pnpm/@ethereumjs+rlp@10.1.2/node_modules/@ethereumjs/rlp/src/index.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/internal.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/helpers.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/bytes.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/constants.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/units.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/account.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/signature.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/authorization.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/binaryTree.ts", "../../../node_modules/.pnpm/@ethereumjs+util@10.1.2/node_modules/@ethereumjs/util/src/blobs.ts", "../../../node_modules/.pnpm/@noble+secp256k1@2.3.0/node_modules/@noble/secp256k1/index.js", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/signature/hashTypedData.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/utils/typedData.ts", "../../../node_modules/.pnpm/viem@2.55.10_typescript@7.0.2_zod@3.25.76/node_modules/viem/errors/typedData.ts", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/coins.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/amino/addresses.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/crypto/ripemd.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/amino/encoding.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/amino/pubkeys.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/amino/multisig.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/amino/omitdefault.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/amino/signature.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/amino/signdoc.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/amino/types.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/queryclient/queryclient.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/queryclient/utils.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/base/query/v1beta1/pagination.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_account.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_balance_module.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_ban.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_bank.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_block.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_borrower.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_constant_values.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_derived_pool.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_eip712.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_export.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_inbound_address.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_invariants.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/type_keygen.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/type_tx_out.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_keystore.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_last_block.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_liquidity_provider.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/type_mimir.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_mimir.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_network.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_node.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_outbound.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_outbound_fee.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_pool.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_pool_slip.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_queue.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_quotes.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_ragnarok.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_rune_pool.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_rune_provider.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_saver.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_secured_asset.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_streaming_swap.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/msg_swap.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_swap_queue.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_swapper_clout.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_thorname.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_trade_account.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_trade_unit.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/type_tss_metric.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_tss.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/misc.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_tx.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_upgrade.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_vault.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query_version.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/type_ban_voter.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/type_clout.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/query.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/auth/v1beta1/auth.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/auth/v1beta1/query.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/modules/auth/queries.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/modules/thorchain/queries.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/rpcclients/httpbatchclient.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/rpcclients/httpclient.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/rpcclients/rpcclient.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/comet38/adaptor/requests.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/inthelpers.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/comet38/encodings.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/jsonrpc.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/comet38/requests.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/comet38/adaptor/responses.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/dates.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/types.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/comet38/hasher.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/comet38/comet38client.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/rpc/comet38/responses.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/proto-signing/pubkey.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/crypto/ed25519/keys.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/crypto/multisig/keys.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/crypto/secp256k1/keys.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/evm/crypto/v1/ethsecp256k1/keys.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/proto-signing/registry.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/proto-signing/signer.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/proto-signing/signing.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/vesting/v1beta1/vesting.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/client.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/fee.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/modules/authz/aminomessages.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/modules/bank/aminomessages.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/modules/ibc/aminomessages.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/tendermint/version/types.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/tendermint/crypto/keys.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/tendermint/types/validator.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/tendermint/types/types.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/tendermint/abci/types.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/base/abci/v1beta1/abci.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/tendermint/types/evidence.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/tendermint/types/block.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/cosmos/tx/v1beta1/service.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/modules/tx/queries.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/modules/wasm/aminomessages.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/multisignature.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/types/aminomessages.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/cosmos/types/thorchain/index.js", "../../../node_modules/.pnpm/rujira.js@1.1.1_debug@4.4.3_starknet@8.9.2_ton-core@0.53.0_ton-crypto@3.2.0__ton-crypto_53da9ebf7436ec5dd239316670eb2be9/node_modules/rujira.js/lib/esm/signers/evm/index.js", "../../javascript/donate/thorchain_chain_info.js", "../../javascript/controllers/payments/keplr_pay_controller.js", "../../javascript/controllers/payments/expiry_countdown_controller.js", "../../javascript/controllers/payments/status_polling_controller.js", "../../javascript/controllers/index.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/dom/data.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/util/index.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/dom/event-handler.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/dom/manipulator.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/util/config.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/base-component.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/dom/selector-engine.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/collapse.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/index.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/enums.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeName.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindow.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/instanceOf.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/applyStyles.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getBasePlacement.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/math.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/userAgent.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getBoundingClientRect.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getLayoutRect.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/contains.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getComputedStyle.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isTableElement.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentElement.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getParentNode.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getOffsetParent.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getMainAxisFromPlacement.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/within.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getFreshSideObject.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergePaddingObject.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/expandToHashMap.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/arrow.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getVariation.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/computeStyles.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/eventListeners.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositePlacement.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getOppositeVariationPlacement.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScroll.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getWindowScrollBarX.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getViewportRect.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getDocumentRect.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/isScrollParent.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getScrollParent.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/listScrollParents.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/rectToClientRect.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getClippingRect.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeOffsets.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/detectOverflow.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/flip.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/hide.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/offset.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/popperOffsets.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/getAltAxis.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/modifiers/preventOverflow.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getHTMLElementScroll.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getNodeScroll.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/dom-utils/getCompositeRect.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/orderModifiers.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/debounce.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/utils/mergeByName.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/createPopper.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper-lite.js", "../../../node_modules/.pnpm/@popperjs+core@2.11.8/node_modules/@popperjs/core/lib/popper.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/dropdown.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/scrollspy.js", "../../../node_modules/.pnpm/bootstrap@5.3.8_@popperjs+core@2.11.8/node_modules/bootstrap/js/src/tab.js", "../../javascript/application.js", "../../javascript/components/AddressesBalanceTreeMap.js", "../../../node_modules/.pnpm/@react-spring+shared@10.1.2_react@19.2.8/node_modules/@react-spring/shared/dist/chunk.mjs", "../../../node_modules/.pnpm/@react-spring+rafz@10.1.2/node_modules/@react-spring/rafz/dist/react-spring_rafz.modern.mjs", "../../../node_modules/.pnpm/@react-spring+shared@10.1.2_react@19.2.8/node_modules/@react-spring/shared/dist/react-spring_shared.modern.mjs", "../../../node_modules/.pnpm/@react-spring+core@10.1.2_react@19.2.8/node_modules/@react-spring/core/dist/react-spring_core.modern.mjs", "../../../node_modules/.pnpm/@react-spring+animated@10.1.2_react@19.2.8/node_modules/@react-spring/animated/dist/react-spring_animated.modern.mjs", "../../../node_modules/.pnpm/@react-spring+web@10.1.2_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@react-spring/web/dist/react-spring_web.modern.mjs", "../../../node_modules/.pnpm/@nivo+theming@0.99.0_react@19.2.8/node_modules/@nivo/theming/src/borderRadius.ts", "../../../node_modules/.pnpm/@nivo+theming@0.99.0_react@19.2.8/node_modules/@nivo/theming/src/bridge.ts", "../../../node_modules/.pnpm/@nivo+theming@0.99.0_react@19.2.8/node_modules/@nivo/theming/src/extend.ts", "../../../node_modules/.pnpm/@nivo+theming@0.99.0_react@19.2.8/node_modules/@nivo/theming/src/defaults.ts", "../../../node_modules/.pnpm/@nivo+theming@0.99.0_react@19.2.8/node_modules/@nivo/theming/src/hooks.ts", "../../../node_modules/.pnpm/@nivo+theming@0.99.0_react@19.2.8/node_modules/@nivo/theming/src/context.tsx", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/TooltipWrapper.tsx", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/Chip.tsx", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/BasicTooltip.tsx", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/TableTooltip.tsx", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/CrosshairLine.tsx", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/Crosshair.tsx", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/context.ts", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/hooks.ts", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/Tooltip.tsx", "../../../node_modules/.pnpm/@nivo+tooltip@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/tooltip/src/TooltipProvider.tsx", "../../../node_modules/.pnpm/react-virtualized-auto-sizer@1.0.26_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/react-virtualized-auto-sizer/dist/react-virtualized-auto-sizer.esm.js", "../../../node_modules/.pnpm/use-debounce@10.1.1_react@19.2.8/node_modules/use-debounce/src/useDebouncedCallback.ts", "../../../node_modules/.pnpm/use-debounce@10.1.1_react@19.2.8/node_modules/use-debounce/src/useDebounce.ts", "../../../node_modules/.pnpm/use-debounce@10.1.1_react@19.2.8/node_modules/use-debounce/src/useThrottledCallback.ts", "../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/define.js", "../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js", "../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/math.js", "../../../node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/cubehelix.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basis.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/basisClosed.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/color.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/numberArray.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/array.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/date.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/number.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/object.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/value.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/round.js", "../../../node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/cubehelix.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/constant.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/math.js", "../../../node_modules/.pnpm/d3-path@3.1.0/node_modules/d3-path/src/path.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/path.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/array.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linear.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/point.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/line.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/area.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/noop.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basis.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisClosed.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/basisOpen.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/bundle.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinal.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalClosed.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/cardinalOpen.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRom.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomClosed.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/catmullRomOpen.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/linearClosed.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/monotone.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/natural.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/curve/step.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/none.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/none.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/expand.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/diverging.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/silhouette.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/offset/wiggle.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/appearance.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/ascending.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/descending.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/insideOut.js", "../../../node_modules/.pnpm/d3-shape@3.2.0/node_modules/d3-shape/src/order/reverse.js", "../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ascending.js", "../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/descending.js", "../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js", "../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js", "../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisect.js", "../../../node_modules/.pnpm/internmap@2.0.3/node_modules/internmap/src/index.js", "../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/ticks.js", "../../../node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/range.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/ordinal.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/band.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/number.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/continuous.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatDecimal.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/exponent.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatGroup.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatNumerals.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatSpecifier.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTrim.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatPrefixAuto.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatRounded.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/formatTypes.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/identity.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/locale.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/defaultLocale.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionFixed.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionPrefix.js", "../../../node_modules/.pnpm/d3-format@3.1.2/node_modules/d3-format/src/precisionRound.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/tickFormat.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/linear.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/nice.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/log.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/symlog.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/interval.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/millisecond.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/duration.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/second.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/minute.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/hour.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/day.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/week.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/month.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/year.js", "../../../node_modules/.pnpm/d3-time@3.1.0/node_modules/d3-time/src/ticks.js", "../../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/locale.js", "../../../node_modules/.pnpm/d3-time-format@4.1.0/node_modules/d3-time-format/src/defaultLocale.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/time.js", "../../../node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/utcTime.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/colors.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/category10.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Accent.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Dark2.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Paired.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Pastel1.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Pastel2.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Set1.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Set2.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Set3.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/categorical/Tableau10.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/ramp.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/BrBG.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/PRGn.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/PiYG.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/PuOr.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/RdBu.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/RdGy.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/RdYlBu.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/RdYlGn.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/diverging/Spectral.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/BuGn.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/BuPu.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/GnBu.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/OrRd.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/PuBuGn.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/PuBu.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/PuRd.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/RdPu.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/YlGnBu.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/YlGn.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrBr.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/YlOrRd.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-single/Blues.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-single/Greens.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-single/Greys.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-single/Purples.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-single/Reds.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-single/Oranges.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/cividis.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/cubehelix.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/rainbow.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/sinebow.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/turbo.js", "../../../node_modules/.pnpm/d3-scale-chromatic@3.1.0/node_modules/d3-scale-chromatic/src/sequential-multi/viridis.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatDecimal.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/exponent.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatGroup.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatNumerals.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatSpecifier.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatTrim.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatPrefixAuto.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatRounded.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/formatTypes.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/identity.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/locale.js", "../../../node_modules/.pnpm/d3-format@1.4.5/node_modules/d3-format/src/defaultLocale.js", "../../../node_modules/.pnpm/d3-time@2.1.1/node_modules/d3-time/src/interval.js", "../../../node_modules/.pnpm/d3-time@2.1.1/node_modules/d3-time/src/duration.js", "../../../node_modules/.pnpm/d3-time@2.1.1/node_modules/d3-time/src/day.js", "../../../node_modules/.pnpm/d3-time@2.1.1/node_modules/d3-time/src/week.js", "../../../node_modules/.pnpm/d3-time@2.1.1/node_modules/d3-time/src/year.js", "../../../node_modules/.pnpm/d3-time@2.1.1/node_modules/d3-time/src/utcDay.js", "../../../node_modules/.pnpm/d3-time@2.1.1/node_modules/d3-time/src/utcWeek.js", "../../../node_modules/.pnpm/d3-time@2.1.1/node_modules/d3-time/src/utcYear.js", "../../../node_modules/.pnpm/d3-time-format@3.0.0/node_modules/d3-time-format/src/locale.js", "../../../node_modules/.pnpm/d3-time-format@3.0.0/node_modules/d3-time-format/src/defaultLocale.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/motion/context.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/motion/hooks.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/ConditionalWrapper.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/Container.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/noop.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/LegacyContainer.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/ResponsiveWrapper.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/defs/gradients/LinearGradient.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/defs/gradients/index.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/defs/patterns/PatternDots.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/polar/utils.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/bridge.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/polar/labels.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/defs/patterns/PatternLines.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/defs/patterns/PatternSquares.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/defs/patterns/index.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/defs/Defs.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/SvgWrapper.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/dots/DotsItemSymbol.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/dots/DotsItem.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/cartesian/markers/CartesianMarkersItem.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/components/cartesian/markers/CartesianMarkers.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/hocs/withContainer.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/hooks/useAnimatedPath.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/hooks/useChartContext.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/props/curve.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/props/stack.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/props/index.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/hooks/useCurveInterpolation.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/colors/quantize.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/colors/index.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/defaults/index.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/hooks/useDimensions.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/hooks/useMeasure.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/hooks/useValueFormatter.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/propertiesConverters.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/cartesian/utils.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/interactivity/detect.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/interactivity/index.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/defs.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/lib/mergeRefs.js", "../../../node_modules/.pnpm/@nivo+core@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/core/src/constants.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/count.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/each.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachBefore.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/eachAfter.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/find.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sum.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/sort.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/path.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/ancestors.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/descendants.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/leaves.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/links.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/iterator.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/hierarchy/index.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/accessors.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/constant.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/round.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/dice.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/slice.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/squarify.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/index.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/binary.js", "../../../node_modules/.pnpm/d3-hierarchy@3.1.2/node_modules/d3-hierarchy/src/treemap/sliceDice.js", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/schemes/categorical.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/schemes/diverging.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/schemes/sequential.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/schemes/all.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/schemes/cyclical.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/schemes/interpolators.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/inheritedColor.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/scales/sequentialColorScale.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/scales/divergingColorScale.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/scales/quantizeColorScale.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/scales/continuousColorScale.ts", "../../../node_modules/.pnpm/@nivo+colors@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/colors/src/scales/ordinalColorScale.ts", "../../../node_modules/.pnpm/@nivo+text@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/text/src/boxAnchor.ts", "../../../node_modules/.pnpm/@nivo+text@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/text/src/canvas.ts", "../../../node_modules/.pnpm/@nivo+text@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/text/src/Text.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/transitions.ts", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/TreeMapNode.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/TreeMapNodeTooltip.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/TreeMapHtmlNode.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/defaults.ts", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/tiling.ts", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/hooks.ts", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/TreeMapNodes.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/TreeMap.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/ResponsiveTreeMap.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/TreeMapHtml.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/ResponsiveTreeMapHtml.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/TreeMapCanvas.tsx", "../../../node_modules/.pnpm/@nivo+treemap@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/treemap/src/ResponsiveTreeMapCanvas.tsx", "../../javascript/components/CollateralLineGraph.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/interval.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/millisecond.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/duration.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/second.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/minute.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/hour.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/week.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/month.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/year.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/utcMinute.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/utcHour.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/utcWeek.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/utcMonth.js", "../../../node_modules/.pnpm/d3-time@1.1.0/node_modules/d3-time/src/utcYear.js", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/timeHelpers.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/linearScale.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/pointScale.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/bandScale.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/timeScale.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/logScale.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/symlogScale.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/compute.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/ticks.ts", "../../../node_modules/.pnpm/@nivo+scales@0.99.0/node_modules/@nivo/scales/src/types.ts", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/compute.ts", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/components/AxisTick.tsx", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/defaults.ts", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/components/Axis.tsx", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/props.ts", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/components/Axes.tsx", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/components/GridLine.tsx", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/components/GridLines.tsx", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/components/Grid.tsx", "../../../node_modules/.pnpm/@nivo+axes@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/axes/src/canvas.ts", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/symbols/SymbolCircle.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/symbols/SymbolDiamond.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/symbols/SymbolSquare.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/symbols/SymbolTriangle.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/defaults.ts", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/compute.ts", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/ContinuousColorsLegendSvg.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/AnchoredContinuousColorsLegendSvg.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/LegendSvgItem.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/LegendSvg.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/svg/BoxLegendSvg.tsx", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/canvas.ts", "../../../node_modules/.pnpm/@nivo+legends@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/legends/src/hooks.ts", "../../../node_modules/.pnpm/robust-predicates@3.0.3/node_modules/robust-predicates/esm/util.js", "../../../node_modules/.pnpm/robust-predicates@3.0.3/node_modules/robust-predicates/esm/orient2d.js", "../../../node_modules/.pnpm/robust-predicates@3.0.3/node_modules/robust-predicates/esm/orient3d.js", "../../../node_modules/.pnpm/robust-predicates@3.0.3/node_modules/robust-predicates/esm/incircle.js", "../../../node_modules/.pnpm/robust-predicates@3.0.3/node_modules/robust-predicates/esm/insphere.js", "../../../node_modules/.pnpm/delaunator@5.1.0/node_modules/delaunator/index.js", "../../../node_modules/.pnpm/d3-delaunay@6.0.4/node_modules/d3-delaunay/src/path.js", "../../../node_modules/.pnpm/d3-delaunay@6.0.4/node_modules/d3-delaunay/src/polygon.js", "../../../node_modules/.pnpm/d3-delaunay@6.0.4/node_modules/d3-delaunay/src/voronoi.js", "../../../node_modules/.pnpm/d3-delaunay@6.0.4/node_modules/d3-delaunay/src/delaunay.js", "../../../node_modules/.pnpm/@nivo+voronoi@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/voronoi/src/props.ts", "../../../node_modules/.pnpm/@nivo+voronoi@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/voronoi/src/defaults.ts", "../../../node_modules/.pnpm/@nivo+voronoi@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/voronoi/src/computeMesh.ts", "../../../node_modules/.pnpm/@nivo+voronoi@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/voronoi/src/hooks.ts", "../../../node_modules/.pnpm/@nivo+voronoi@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/voronoi/src/Voronoi.tsx", "../../../node_modules/.pnpm/@nivo+voronoi@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/voronoi/src/ResponsiveVoronoi.tsx", "../../../node_modules/.pnpm/@nivo+voronoi@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/voronoi/src/Mesh.tsx", "../../../node_modules/.pnpm/@nivo+voronoi@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/voronoi/src/meshCanvas.ts", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/PointTooltip.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/defaults.ts", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/SliceTooltip.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/hooks.ts", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/Areas.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/LinesItem.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/Lines.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/SlicesItem.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/Slices.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/Points.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/Mesh.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/Line.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/ResponsiveLine.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/LineCanvas.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/ResponsiveLineCanvas.tsx", "../../../node_modules/.pnpm/@nivo+line@0.99.0_react-dom@19.2.8_react@19.2.8__react@19.2.8/node_modules/@nivo/line/src/types.ts", "../../javascript/components/BurnerBackground.js", "../../javascript/components/ThorchainLiveSwaps.js", "../../javascript/components/ThorchainBlockPulse.js", "../../javascript/components/ThorchainSynthEngine.js", "../../javascript/components/CosmwasmLiveContracts.js", "../../javascript/components/FinPairLiveOverlay.js", "../../javascript/components/VirtualizationStrategyLiveFeed.js", "../../javascript/components/MidgardRunePriceLine.js", "../../javascript/components/midgard_nivo_theme.js", "../../javascript/components/MidgardTvlArea.js", "../../javascript/components/MidgardAffiliateLeaderboard.js", "../../javascript/components/MidgardHoldersTreemap.js", "../../javascript/components/MidgardThornameAffiliateHistory.js", "../../javascript/components/RujiraOverviewVolumeNivo.js"], "sourcesContent": ["export default {\n logger: typeof console !== \"undefined\" ? console : undefined,\n WebSocket: typeof WebSocket !== \"undefined\" ? WebSocket : undefined,\n}\n", "import adapters from \"./adapters\"\n\n// The logger is disabled by default. You can enable it with:\n//\n// ActionCable.logger.enabled = true\n//\n// Example:\n//\n// import * as ActionCable from '@rails/actioncable'\n//\n// ActionCable.logger.enabled = true\n// ActionCable.logger.log('Connection Established.')\n//\n\nexport default {\n log(...messages) {\n if (this.enabled) {\n messages.push(Date.now())\n adapters.logger.log(\"[ActionCable]\", ...messages)\n }\n },\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring the cable connection is in good health by validating the heartbeat pings sent from the server, and attempting\n// revival reconnections if things go astray. Internal class, not intended for direct user manipulation.\n\nconst now = () => new Date().getTime()\n\nconst secondsSince = time => (now() - time) / 1000\n\nclass ConnectionMonitor {\n constructor(connection) {\n this.visibilityDidChange = this.visibilityDidChange.bind(this)\n this.connection = connection\n this.reconnectAttempts = 0\n }\n\n start() {\n if (!this.isRunning()) {\n this.startedAt = now()\n delete this.stoppedAt\n this.startPolling()\n addEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(`ConnectionMonitor started. stale threshold = ${this.constructor.staleThreshold} s`)\n }\n }\n\n stop() {\n if (this.isRunning()) {\n this.stoppedAt = now()\n this.stopPolling()\n removeEventListener(\"visibilitychange\", this.visibilityDidChange)\n logger.log(\"ConnectionMonitor stopped\")\n }\n }\n\n isRunning() {\n return this.startedAt && !this.stoppedAt\n }\n\n recordMessage() {\n this.pingedAt = now()\n }\n\n recordConnect() {\n this.reconnectAttempts = 0\n delete this.disconnectedAt\n logger.log(\"ConnectionMonitor recorded connect\")\n }\n\n recordDisconnect() {\n this.disconnectedAt = now()\n logger.log(\"ConnectionMonitor recorded disconnect\")\n }\n\n // Private\n\n startPolling() {\n this.stopPolling()\n this.poll()\n }\n\n stopPolling() {\n clearTimeout(this.pollTimeout)\n }\n\n poll() {\n this.pollTimeout = setTimeout(() => {\n this.reconnectIfStale()\n this.poll()\n }\n , this.getPollInterval())\n }\n\n getPollInterval() {\n const { staleThreshold, reconnectionBackoffRate } = this.constructor\n const backoff = Math.pow(1 + reconnectionBackoffRate, Math.min(this.reconnectAttempts, 10))\n const jitterMax = this.reconnectAttempts === 0 ? 1.0 : reconnectionBackoffRate\n const jitter = jitterMax * Math.random()\n return staleThreshold * 1000 * backoff * (1 + jitter)\n }\n\n reconnectIfStale() {\n if (this.connectionIsStale()) {\n logger.log(`ConnectionMonitor detected stale connection. reconnectAttempts = ${this.reconnectAttempts}, time stale = ${secondsSince(this.refreshedAt)} s, stale threshold = ${this.constructor.staleThreshold} s`)\n this.reconnectAttempts++\n if (this.disconnectedRecently()) {\n logger.log(`ConnectionMonitor skipping reopening recent disconnect. time disconnected = ${secondsSince(this.disconnectedAt)} s`)\n } else {\n logger.log(\"ConnectionMonitor reopening\")\n this.connection.reopen()\n }\n }\n }\n\n get refreshedAt() {\n return this.pingedAt ? this.pingedAt : this.startedAt\n }\n\n connectionIsStale() {\n return secondsSince(this.refreshedAt) > this.constructor.staleThreshold\n }\n\n disconnectedRecently() {\n return this.disconnectedAt && (secondsSince(this.disconnectedAt) < this.constructor.staleThreshold)\n }\n\n visibilityDidChange() {\n if (document.visibilityState === \"visible\") {\n setTimeout(() => {\n if (this.connectionIsStale() || !this.connection.isOpen()) {\n logger.log(`ConnectionMonitor reopening stale connection on visibilitychange. visibilityState = ${document.visibilityState}`)\n this.connection.reopen()\n }\n }\n , 200)\n }\n }\n\n}\n\nConnectionMonitor.staleThreshold = 6 // Server::Connections::BEAT_INTERVAL * 2 (missed two pings)\nConnectionMonitor.reconnectionBackoffRate = 0.15\n\nexport default ConnectionMonitor\n", "export default {\n \"message_types\": {\n \"welcome\": \"welcome\",\n \"disconnect\": \"disconnect\",\n \"ping\": \"ping\",\n \"confirmation\": \"confirm_subscription\",\n \"rejection\": \"reject_subscription\"\n },\n \"disconnect_reasons\": {\n \"unauthorized\": \"unauthorized\",\n \"invalid_request\": \"invalid_request\",\n \"server_restart\": \"server_restart\",\n \"remote\": \"remote\"\n },\n \"default_mount_path\": \"/cable\",\n \"protocols\": [\n \"actioncable-v1-json\",\n \"actioncable-unsupported\"\n ]\n}\n", "import adapters from \"./adapters\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\n\n// Encapsulate the cable connection held by the consumer. This is an internal class not intended for direct user manipulation.\n\nconst {message_types, protocols} = INTERNAL\nconst supportedProtocols = protocols.slice(0, protocols.length - 1)\n\nconst indexOf = [].indexOf\n\nclass Connection {\n constructor(consumer) {\n this.open = this.open.bind(this)\n this.consumer = consumer\n this.subscriptions = this.consumer.subscriptions\n this.monitor = new ConnectionMonitor(this)\n this.disconnected = true\n }\n\n send(data) {\n if (this.isOpen()) {\n this.webSocket.send(JSON.stringify(data))\n return true\n } else {\n return false\n }\n }\n\n open() {\n if (this.isActive()) {\n logger.log(`Attempted to open WebSocket, but existing socket is ${this.getState()}`)\n return false\n } else {\n const socketProtocols = [...protocols, ...this.consumer.subprotocols || []]\n logger.log(`Opening WebSocket, current state is ${this.getState()}, subprotocols: ${socketProtocols}`)\n if (this.webSocket) { this.uninstallEventHandlers() }\n this.webSocket = new adapters.WebSocket(this.consumer.url, socketProtocols)\n this.installEventHandlers()\n this.monitor.start()\n return true\n }\n }\n\n close({allowReconnect} = {allowReconnect: true}) {\n if (!allowReconnect) { this.monitor.stop() }\n // Avoid closing websockets in a \"connecting\" state due to Safari 15.1+ bug. See: https://github.com/rails/rails/issues/43835#issuecomment-1002288478\n if (this.isOpen()) {\n return this.webSocket.close()\n }\n }\n\n reopen() {\n logger.log(`Reopening WebSocket, current state is ${this.getState()}`)\n if (this.isActive()) {\n try {\n return this.close()\n } catch (error) {\n logger.log(\"Failed to reopen WebSocket\", error)\n }\n finally {\n logger.log(`Reopening WebSocket in ${this.constructor.reopenDelay}ms`)\n setTimeout(this.open, this.constructor.reopenDelay)\n }\n } else {\n return this.open()\n }\n }\n\n getProtocol() {\n if (this.webSocket) {\n return this.webSocket.protocol\n }\n }\n\n isOpen() {\n return this.isState(\"open\")\n }\n\n isActive() {\n return this.isState(\"open\", \"connecting\")\n }\n\n triedToReconnect() {\n return this.monitor.reconnectAttempts > 0\n }\n\n // Private\n\n isProtocolSupported() {\n return indexOf.call(supportedProtocols, this.getProtocol()) >= 0\n }\n\n isState(...states) {\n return indexOf.call(states, this.getState()) >= 0\n }\n\n getState() {\n if (this.webSocket) {\n for (let state in adapters.WebSocket) {\n if (adapters.WebSocket[state] === this.webSocket.readyState) {\n return state.toLowerCase()\n }\n }\n }\n return null\n }\n\n installEventHandlers() {\n for (let eventName in this.events) {\n const handler = this.events[eventName].bind(this)\n this.webSocket[`on${eventName}`] = handler\n }\n }\n\n uninstallEventHandlers() {\n for (let eventName in this.events) {\n this.webSocket[`on${eventName}`] = function() {}\n }\n }\n\n}\n\nConnection.reopenDelay = 500\n\nConnection.prototype.events = {\n message(event) {\n if (!this.isProtocolSupported()) { return }\n const {identifier, message, reason, reconnect, type} = JSON.parse(event.data)\n this.monitor.recordMessage()\n switch (type) {\n case message_types.welcome:\n if (this.triedToReconnect()) {\n this.reconnectAttempted = true\n }\n this.monitor.recordConnect()\n return this.subscriptions.reload()\n case message_types.disconnect:\n logger.log(`Disconnecting. Reason: ${reason}`)\n return this.close({allowReconnect: reconnect})\n case message_types.ping:\n return null\n case message_types.confirmation:\n this.subscriptions.confirmSubscription(identifier)\n if (this.reconnectAttempted) {\n this.reconnectAttempted = false\n return this.subscriptions.notify(identifier, \"connected\", {reconnected: true})\n } else {\n return this.subscriptions.notify(identifier, \"connected\", {reconnected: false})\n }\n case message_types.rejection:\n return this.subscriptions.reject(identifier)\n default:\n return this.subscriptions.notify(identifier, \"received\", message)\n }\n },\n\n open() {\n logger.log(`WebSocket onopen event, using '${this.getProtocol()}' subprotocol`)\n this.disconnected = false\n if (!this.isProtocolSupported()) {\n logger.log(\"Protocol is unsupported. Stopping monitor and disconnecting.\")\n return this.close({allowReconnect: false})\n }\n },\n\n close(event) {\n logger.log(\"WebSocket onclose event\")\n if (this.disconnected) { return }\n this.disconnected = true\n this.monitor.recordDisconnect()\n return this.subscriptions.notifyAll(\"disconnected\", {willAttemptReconnect: this.monitor.isRunning()})\n },\n\n error() {\n logger.log(\"WebSocket onerror event\")\n }\n}\n\nexport default Connection\n", "// A new subscription is created through the ActionCable.Subscriptions instance available on the consumer.\n// It provides a number of callbacks and a method for calling remote procedure calls on the corresponding\n// Channel instance on the server side.\n//\n// An example demonstrates the basic functionality:\n//\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\", {\n// connected() {\n// // Called once the subscription has been successfully completed\n// },\n//\n// disconnected({ willAttemptReconnect: boolean }) {\n// // Called when the client has disconnected with the server.\n// // The object will have an `willAttemptReconnect` property which\n// // says whether the client has the intention of attempting\n// // to reconnect.\n// },\n//\n// appear() {\n// this.perform('appear', {appearing_on: this.appearingOn()})\n// },\n//\n// away() {\n// this.perform('away')\n// },\n//\n// appearingOn() {\n// $('main').data('appearing-on')\n// }\n// })\n//\n// The methods #appear and #away forward their intent to the remote AppearanceChannel instance on the server\n// by calling the `perform` method with the first parameter being the action (which maps to AppearanceChannel#appear/away).\n// The second parameter is a hash that'll get JSON encoded and made available on the server in the data parameter.\n//\n// This is how the server component would look:\n//\n// class AppearanceChannel < ApplicationActionCable::Channel\n// def subscribed\n// current_user.appear\n// end\n//\n// def unsubscribed\n// current_user.disappear\n// end\n//\n// def appear(data)\n// current_user.appear on: data['appearing_on']\n// end\n//\n// def away\n// current_user.away\n// end\n// end\n//\n// The \"AppearanceChannel\" name is automatically mapped between the client-side subscription creation and the server-side Ruby class name.\n// The AppearanceChannel#appear/away public methods are exposed automatically to client-side invocation through the perform method.\n\nconst extend = function(object, properties) {\n if (properties != null) {\n for (let key in properties) {\n const value = properties[key]\n object[key] = value\n }\n }\n return object\n}\n\nexport default class Subscription {\n constructor(consumer, params = {}, mixin) {\n this.consumer = consumer\n this.identifier = JSON.stringify(params)\n extend(this, mixin)\n }\n\n // Perform a channel action with the optional data passed as an attribute\n perform(action, data = {}) {\n data.action = action\n return this.send(data)\n }\n\n send(data) {\n return this.consumer.send({command: \"message\", identifier: this.identifier, data: JSON.stringify(data)})\n }\n\n unsubscribe() {\n return this.consumer.subscriptions.remove(this)\n }\n}\n", "import logger from \"./logger\"\n\n// Responsible for ensuring channel subscribe command is confirmed, retrying until confirmation is received.\n// Internal class, not intended for direct user manipulation.\n\nclass SubscriptionGuarantor {\n constructor(subscriptions) {\n this.subscriptions = subscriptions\n this.pendingSubscriptions = []\n }\n\n guarantee(subscription) {\n if(this.pendingSubscriptions.indexOf(subscription) == -1){ \n logger.log(`SubscriptionGuarantor guaranteeing ${subscription.identifier}`)\n this.pendingSubscriptions.push(subscription) \n }\n else {\n logger.log(`SubscriptionGuarantor already guaranteeing ${subscription.identifier}`)\n }\n this.startGuaranteeing()\n }\n\n forget(subscription) {\n logger.log(`SubscriptionGuarantor forgetting ${subscription.identifier}`)\n this.pendingSubscriptions = (this.pendingSubscriptions.filter((s) => s !== subscription))\n }\n\n startGuaranteeing() {\n this.stopGuaranteeing()\n this.retrySubscribing()\n }\n \n stopGuaranteeing() {\n clearTimeout(this.retryTimeout)\n }\n\n retrySubscribing() {\n this.retryTimeout = setTimeout(() => {\n if (this.subscriptions && typeof(this.subscriptions.subscribe) === \"function\") {\n this.pendingSubscriptions.map((subscription) => {\n logger.log(`SubscriptionGuarantor resubscribing ${subscription.identifier}`)\n this.subscriptions.subscribe(subscription)\n })\n }\n }\n , 500)\n }\n}\n\nexport default SubscriptionGuarantor", "import logger from \"./logger\"\nimport Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\n\n// Collection class for creating (and internally managing) channel subscriptions.\n// The only method intended to be triggered by the user is ActionCable.Subscriptions#create,\n// and it should be called through the consumer like so:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n\nexport default class Subscriptions {\n constructor(consumer) {\n this.consumer = consumer\n this.guarantor = new SubscriptionGuarantor(this)\n this.subscriptions = []\n }\n\n create(channelName, mixin) {\n const channel = channelName\n const params = typeof channel === \"object\" ? channel : {channel}\n const subscription = new Subscription(this.consumer, params, mixin)\n return this.add(subscription)\n }\n\n // Private\n\n add(subscription) {\n this.subscriptions.push(subscription)\n this.consumer.ensureActiveConnection()\n this.notify(subscription, \"initialized\")\n this.subscribe(subscription)\n return subscription\n }\n\n remove(subscription) {\n this.forget(subscription)\n if (!this.findAll(subscription.identifier).length) {\n this.sendCommand(subscription, \"unsubscribe\")\n }\n return subscription\n }\n\n reject(identifier) {\n return this.findAll(identifier).map((subscription) => {\n this.forget(subscription)\n this.notify(subscription, \"rejected\")\n return subscription\n })\n }\n\n forget(subscription) {\n this.guarantor.forget(subscription)\n this.subscriptions = (this.subscriptions.filter((s) => s !== subscription))\n return subscription\n }\n\n findAll(identifier) {\n return this.subscriptions.filter((s) => s.identifier === identifier)\n }\n\n reload() {\n return this.subscriptions.map((subscription) =>\n this.subscribe(subscription))\n }\n\n notifyAll(callbackName, ...args) {\n return this.subscriptions.map((subscription) =>\n this.notify(subscription, callbackName, ...args))\n }\n\n notify(subscription, callbackName, ...args) {\n let subscriptions\n if (typeof subscription === \"string\") {\n subscriptions = this.findAll(subscription)\n } else {\n subscriptions = [subscription]\n }\n\n return subscriptions.map((subscription) =>\n (typeof subscription[callbackName] === \"function\" ? subscription[callbackName](...args) : undefined))\n }\n\n subscribe(subscription) {\n if (this.sendCommand(subscription, \"subscribe\")) {\n this.guarantor.guarantee(subscription)\n }\n }\n\n confirmSubscription(identifier) {\n logger.log(`Subscription confirmed ${identifier}`)\n this.findAll(identifier).map((subscription) =>\n this.guarantor.forget(subscription))\n }\n\n sendCommand(subscription, command) {\n const {identifier} = subscription\n return this.consumer.send({command, identifier})\n }\n}\n", "import Connection from \"./connection\"\nimport Subscriptions from \"./subscriptions\"\n\n// The ActionCable.Consumer establishes the connection to a server-side Ruby Connection object. Once established,\n// the ActionCable.ConnectionMonitor will ensure that its properly maintained through heartbeats and checking for stale updates.\n// The Consumer instance is also the gateway to establishing subscriptions to desired channels through the #createSubscription\n// method.\n//\n// The following example shows how this can be set up:\n//\n// App = {}\n// App.cable = ActionCable.createConsumer(\"ws://example.com/accounts/1\")\n// App.appearance = App.cable.subscriptions.create(\"AppearanceChannel\")\n//\n// For more details on how you'd configure an actual channel subscription, see ActionCable.Subscription.\n//\n// When a consumer is created, it automatically connects with the server.\n//\n// To disconnect from the server, call\n//\n// App.cable.disconnect()\n//\n// and to restart the connection:\n//\n// App.cable.connect()\n//\n// Any channel subscriptions which existed prior to disconnecting will\n// automatically resubscribe.\n\nexport default class Consumer {\n constructor(url) {\n this._url = url\n this.subscriptions = new Subscriptions(this)\n this.connection = new Connection(this)\n this.subprotocols = []\n }\n\n get url() {\n return createWebSocketURL(this._url)\n }\n\n send(data) {\n return this.connection.send(data)\n }\n\n connect() {\n return this.connection.open()\n }\n\n disconnect() {\n return this.connection.close({allowReconnect: false})\n }\n\n ensureActiveConnection() {\n if (!this.connection.isActive()) {\n return this.connection.open()\n }\n }\n\n addSubProtocol(subprotocol) {\n this.subprotocols = [...this.subprotocols, subprotocol]\n }\n}\n\nexport function createWebSocketURL(url) {\n if (typeof url === \"function\") {\n url = url()\n }\n\n if (url && !/^wss?:/i.test(url)) {\n const a = document.createElement(\"a\")\n a.href = url\n // Fix populating Location properties in IE. Otherwise, protocol will be blank.\n a.href = a.href // eslint-disable-line\n a.protocol = a.protocol.replace(\"http\", \"ws\")\n return a.href\n } else {\n return url\n }\n}\n", "import adapters from \"./adapters\"\nimport Connection from \"./connection\"\nimport ConnectionMonitor from \"./connection_monitor\"\nimport Consumer, { createWebSocketURL } from \"./consumer\"\nimport INTERNAL from \"./internal\"\nimport logger from \"./logger\"\nimport Subscription from \"./subscription\"\nimport SubscriptionGuarantor from \"./subscription_guarantor\"\nimport Subscriptions from \"./subscriptions\"\n\nexport {\n Connection,\n ConnectionMonitor,\n Consumer,\n INTERNAL,\n Subscription,\n Subscriptions,\n SubscriptionGuarantor,\n adapters,\n createWebSocketURL,\n logger,\n}\n\nexport function createConsumer(url = getConfig(\"url\") || INTERNAL.default_mount_path) {\n return new Consumer(url)\n}\n\nexport function getConfig(name) {\n const element = document.head.querySelector(`meta[name='action-cable-${name}']`)\n if (element) {\n return element.getAttribute(\"content\")\n }\n}\n", "/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a: unknown): a is Uint8Array {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n\n/** Asserts something is positive integer. */\nexport function anumber(n: number): void {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error('positive integer expected, got ' + n);\n}\n\n/** Asserts something is Uint8Array. */\nexport function abytes(b: Uint8Array | undefined, ...lengths: number[]): void {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n\n/** Asserts something is hash */\nexport function ahash(h: IHash): void {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(instance: any, checkFinished = true): void {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\n\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out: any, instance: any): void {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n\n/** Generic type encompassing 8/16/32-byte arrays - but not 64-byte. */\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr: TypedArray): Uint8Array {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr: TypedArray): Uint32Array {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays: TypedArray[]): void {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr: TypedArray): DataView {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word: number, shift: number): number {\n return (word << (32 - shift)) | (word >>> shift);\n}\n\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word: number, shift: number): number {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE: boolean = /* @__PURE__ */ (() =>\n new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n\n/** The byte swap operation for uint32 */\nexport function byteSwap(word: number): number {\n return (\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff)\n );\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE: (n: number) => number = isLE\n ? (n: number) => n\n : (n: number) => byteSwap(n);\n\n/** @deprecated */\nexport const byteSwapIfBE: typeof swap8IfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr: Uint32Array): Uint32Array {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\n\nexport const swap32IfBE: (u: Uint32Array) => Uint32Array = isLE\n ? (u: Uint32Array) => u\n : byteSwap32;\n\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin: boolean = /* @__PURE__ */ (() =>\n // @ts-ignore\n typeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin) return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 } as const;\nfunction asciiToBase16(ch: number): number | undefined {\n if (ch >= asciis._0 && ch <= asciis._9) return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F) return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f) return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin) return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async (): Promise => {};\n\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(\n iters: number,\n tick: number,\n cb: (i: number) => void\n): Promise {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols, but ts doesn't see them: https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\ndeclare const TextDecoder: any;\n\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes: Uint8Array): string {\n return new TextDecoder().decode(bytes);\n}\n\n/** Accepted input of hash functions. Strings are converted to byte arrays. */\nexport type Input = string | Uint8Array;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/** KDFs can accept string or Uint8Array for user convenience. */\nexport type KDFInput = string | Uint8Array;\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data: KDFInput): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\n/** Hash interface. */\nexport type IHash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\n\n/** For runtime check if class implements interface */\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n abstract clone(): T;\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\n/** Hash function */\nexport type CHash = ReturnType;\n/** Hash function with output */\nexport type CHashO = ReturnType;\n/** XOF with output */\nexport type CHashXO = ReturnType;\n\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher>(\n hashCons: () => Hash\n): {\n (msg: Input): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(): Hash;\n} {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function createOptHasher, T extends Object>(\n hashCons: (opts?: T) => Hash\n): {\n (msg: Input, opts?: T): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(opts?: T): Hash;\n} {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts?: T) => hashCons(opts);\n return hashC;\n}\n\nexport function createXOFer, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n): {\n (msg: Input, opts?: T): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(opts?: T): HashXOF;\n} {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts?: T) => hashCons(opts);\n return hashC;\n}\nexport const wrapConstructor: typeof createHasher = createHasher;\nexport const wrapConstructorWithOpts: typeof createOptHasher = createOptHasher;\nexport const wrapXOFConstructorWithOpts: typeof createXOFer = createXOFer;\n\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n", "/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { type Input, Hash, abytes, aexists, aoutput, clean, createView, toBytes } from './utils.ts';\n\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(\n view: DataView,\n byteOffset: number,\n value: bigint,\n isLE: boolean\n): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/** Choice: a ? b : c */\nexport function Chi(a: number, b: number, c: number): number {\n return (a & b) ^ (~a & c);\n}\n\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a: number, b: number, c: number): number {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n\n readonly blockLen: number;\n readonly outputLen: number;\n readonly padOffset: number;\n readonly isLE: boolean;\n\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(blockLen: number, outputLen: number, padOffset: number, isLE: boolean) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array): void {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest(): Uint8Array {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n", "/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n\nfunction fromBig(\n n: bigint,\n le = false\n): {\n h: number;\n l: number;\n} {\n if (le) return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\n\nfunction split(lst: bigint[], le = false): Uint32Array[] {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\n\nconst toBig = (h: number, l: number): bigint => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h: number, _l: number, s: number): number => h >>> s;\nconst shrSL = (h: number, l: number, s: number): number => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h: number, l: number, s: number): number => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h: number, l: number, s: number): number => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h: number, l: number, s: number): number => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h: number, l: number, s: number): number => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h: number, l: number): number => l;\nconst rotr32L = (h: number, _l: number): number => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h: number, l: number, s: number): number => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h: number, l: number, s: number): number => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h: number, l: number, s: number): number => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h: number, l: number, s: number): number => (h << (s - 32)) | (l >>> (64 - s));\n\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(\n Ah: number,\n Al: number,\n Bh: number,\n Bl: number\n): {\n h: number;\n l: number;\n} {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al: number, Bl: number, Cl: number): number => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low: number, Ah: number, Bh: number, Ch: number): number =>\n (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al: number, Bl: number, Cl: number, Dl: number): number =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number): number =>\n (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number): number =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number): number =>\n (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n// prettier-ignore\nexport {\n add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig\n};\n// prettier-ignore\nconst u64: { fromBig: typeof fromBig; split: typeof split; toBig: (h: number, l: number) => bigint; shrSH: (h: number, _l: number, s: number) => number; shrSL: (h: number, l: number, s: number) => number; rotrSH: (h: number, l: number, s: number) => number; rotrSL: (h: number, l: number, s: number) => number; rotrBH: (h: number, l: number, s: number) => number; rotrBL: (h: number, l: number, s: number) => number; rotr32H: (_h: number, l: number) => number; rotr32L: (h: number, _l: number) => number; rotlSH: (h: number, l: number, s: number) => number; rotlSL: (h: number, l: number, s: number) => number; rotlBH: (h: number, l: number, s: number) => number; rotlBL: (h: number, l: number, s: number) => number; add: typeof add; add3L: (Al: number, Bl: number, Cl: number) => number; add3H: (low: number, Ah: number, Bh: number, Ch: number) => number; add4L: (Al: number, Bl: number, Cl: number, Dl: number) => number; add4H: (low: number, Ah: number, Bh: number, Ch: number, Dh: number) => number; add5H: (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) => number; add5L: (Al: number, Bl: number, Cl: number, Dl: number, El: number) => number; } = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n", "/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from './_md.ts';\nimport * as u64 from './_u64.ts';\nimport { type CHash, clean, createHasher, rotr } from './utils.ts';\n\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n protected A: number = SHA256_IV[0] | 0;\n protected B: number = SHA256_IV[1] | 0;\n protected C: number = SHA256_IV[2] | 0;\n protected D: number = SHA256_IV[3] | 0;\n protected E: number = SHA256_IV[4] | 0;\n protected F: number = SHA256_IV[5] | 0;\n protected G: number = SHA256_IV[6] | 0;\n protected H: number = SHA256_IV[7] | 0;\n\n constructor(outputLen: number = 32) {\n super(64, outputLen, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ): void {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean(): void {\n clean(SHA256_W);\n }\n destroy(): void {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\n\nexport class SHA224 extends SHA256 {\n protected A: number = SHA224_IV[0] | 0;\n protected B: number = SHA224_IV[1] | 0;\n protected C: number = SHA224_IV[2] | 0;\n protected D: number = SHA224_IV[3] | 0;\n protected E: number = SHA224_IV[4] | 0;\n protected F: number = SHA224_IV[5] | 0;\n protected G: number = SHA224_IV[6] | 0;\n protected H: number = SHA224_IV[7] | 0;\n constructor() {\n super(28);\n }\n}\n\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\n\nexport class SHA512 extends HashMD {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n protected Ah: number = SHA512_IV[0] | 0;\n protected Al: number = SHA512_IV[1] | 0;\n protected Bh: number = SHA512_IV[2] | 0;\n protected Bl: number = SHA512_IV[3] | 0;\n protected Ch: number = SHA512_IV[4] | 0;\n protected Cl: number = SHA512_IV[5] | 0;\n protected Dh: number = SHA512_IV[6] | 0;\n protected Dl: number = SHA512_IV[7] | 0;\n protected Eh: number = SHA512_IV[8] | 0;\n protected El: number = SHA512_IV[9] | 0;\n protected Fh: number = SHA512_IV[10] | 0;\n protected Fl: number = SHA512_IV[11] | 0;\n protected Gh: number = SHA512_IV[12] | 0;\n protected Gl: number = SHA512_IV[13] | 0;\n protected Hh: number = SHA512_IV[14] | 0;\n protected Hl: number = SHA512_IV[15] | 0;\n\n constructor(outputLen: number = 64) {\n super(128, outputLen, 16, false);\n }\n // prettier-ignore\n protected get(): [\n number, number, number, number, number, number, number, number,\n number, number, number, number, number, number, number, number\n ] {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n protected set(\n Ah: number, Al: number, Bh: number, Bl: number, Ch: number, Cl: number, Dh: number, Dl: number,\n Eh: number, El: number, Fh: number, Fl: number, Gh: number, Gl: number, Hh: number, Hl: number\n ): void {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n protected roundClean(): void {\n clean(SHA512_W_H, SHA512_W_L);\n }\n destroy(): void {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n\nexport class SHA384 extends SHA512 {\n protected Ah: number = SHA384_IV[0] | 0;\n protected Al: number = SHA384_IV[1] | 0;\n protected Bh: number = SHA384_IV[2] | 0;\n protected Bl: number = SHA384_IV[3] | 0;\n protected Ch: number = SHA384_IV[4] | 0;\n protected Cl: number = SHA384_IV[5] | 0;\n protected Dh: number = SHA384_IV[6] | 0;\n protected Dl: number = SHA384_IV[7] | 0;\n protected Eh: number = SHA384_IV[8] | 0;\n protected El: number = SHA384_IV[9] | 0;\n protected Fh: number = SHA384_IV[10] | 0;\n protected Fl: number = SHA384_IV[11] | 0;\n protected Gh: number = SHA384_IV[12] | 0;\n protected Gl: number = SHA384_IV[13] | 0;\n protected Hh: number = SHA384_IV[14] | 0;\n protected Hl: number = SHA384_IV[15] | 0;\n\n constructor() {\n super(48);\n }\n}\n\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\n\nexport class SHA512_224 extends SHA512 {\n protected Ah: number = T224_IV[0] | 0;\n protected Al: number = T224_IV[1] | 0;\n protected Bh: number = T224_IV[2] | 0;\n protected Bl: number = T224_IV[3] | 0;\n protected Ch: number = T224_IV[4] | 0;\n protected Cl: number = T224_IV[5] | 0;\n protected Dh: number = T224_IV[6] | 0;\n protected Dl: number = T224_IV[7] | 0;\n protected Eh: number = T224_IV[8] | 0;\n protected El: number = T224_IV[9] | 0;\n protected Fh: number = T224_IV[10] | 0;\n protected Fl: number = T224_IV[11] | 0;\n protected Gh: number = T224_IV[12] | 0;\n protected Gl: number = T224_IV[13] | 0;\n protected Hh: number = T224_IV[14] | 0;\n protected Hl: number = T224_IV[15] | 0;\n\n constructor() {\n super(28);\n }\n}\n\nexport class SHA512_256 extends SHA512 {\n protected Ah: number = T256_IV[0] | 0;\n protected Al: number = T256_IV[1] | 0;\n protected Bh: number = T256_IV[2] | 0;\n protected Bl: number = T256_IV[3] | 0;\n protected Ch: number = T256_IV[4] | 0;\n protected Cl: number = T256_IV[5] | 0;\n protected Dh: number = T256_IV[6] | 0;\n protected Dl: number = T256_IV[7] | 0;\n protected Eh: number = T256_IV[8] | 0;\n protected El: number = T256_IV[9] | 0;\n protected Fh: number = T256_IV[10] | 0;\n protected Fl: number = T256_IV[11] | 0;\n protected Gh: number = T256_IV[12] | 0;\n protected Gl: number = T256_IV[13] | 0;\n protected Hh: number = T256_IV[14] | 0;\n protected Hl: number = T256_IV[15] | 0;\n\n constructor() {\n super(32);\n }\n}\n\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256: CHash = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224: CHash = /* @__PURE__ */ createHasher(() => new SHA224());\n\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512: CHash = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384: CHash = /* @__PURE__ */ createHasher(() => new SHA384());\n\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256: CHash = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224: CHash = /* @__PURE__ */ createHasher(() => new SHA512_224());\n", "'use strict';\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.bech32m = exports.bech32 = void 0;\nconst ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\nconst ALPHABET_MAP = {};\nfor (let z = 0; z < ALPHABET.length; z++) {\n const x = ALPHABET.charAt(z);\n ALPHABET_MAP[x] = z;\n}\nfunction polymodStep(pre) {\n const b = pre >> 25;\n return (((pre & 0x1ffffff) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3));\n}\nfunction prefixChk(prefix) {\n let chk = 1;\n for (let i = 0; i < prefix.length; ++i) {\n const c = prefix.charCodeAt(i);\n if (c < 33 || c > 126)\n return 'Invalid prefix (' + prefix + ')';\n chk = polymodStep(chk) ^ (c >> 5);\n }\n chk = polymodStep(chk);\n for (let i = 0; i < prefix.length; ++i) {\n const v = prefix.charCodeAt(i);\n chk = polymodStep(chk) ^ (v & 0x1f);\n }\n return chk;\n}\nfunction convert(data, inBits, outBits, pad) {\n let value = 0;\n let bits = 0;\n const maxV = (1 << outBits) - 1;\n const result = [];\n for (let i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i];\n bits += inBits;\n while (bits >= outBits) {\n bits -= outBits;\n result.push((value >> bits) & maxV);\n }\n }\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV);\n }\n }\n else {\n if (bits >= inBits)\n return 'Excess padding';\n if ((value << (outBits - bits)) & maxV)\n return 'Non-zero padding';\n }\n return result;\n}\nfunction toWords(bytes) {\n return convert(bytes, 8, 5, true);\n}\nfunction fromWordsUnsafe(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n}\nfunction fromWords(words) {\n const res = convert(words, 5, 8, false);\n if (Array.isArray(res))\n return res;\n throw new Error(res);\n}\nfunction getLibraryFromEncoding(encoding) {\n let ENCODING_CONST;\n if (encoding === 'bech32') {\n ENCODING_CONST = 1;\n }\n else {\n ENCODING_CONST = 0x2bc830a3;\n }\n function encode(prefix, words, LIMIT) {\n LIMIT = LIMIT || 90;\n if (prefix.length + 7 + words.length > LIMIT)\n throw new TypeError('Exceeds length limit');\n prefix = prefix.toLowerCase();\n // determine chk mod\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n throw new Error(chk);\n let result = prefix + '1';\n for (let i = 0; i < words.length; ++i) {\n const x = words[i];\n if (x >> 5 !== 0)\n throw new Error('Non 5-bit word');\n chk = polymodStep(chk) ^ x;\n result += ALPHABET.charAt(x);\n }\n for (let i = 0; i < 6; ++i) {\n chk = polymodStep(chk);\n }\n chk ^= ENCODING_CONST;\n for (let i = 0; i < 6; ++i) {\n const v = (chk >> ((5 - i) * 5)) & 0x1f;\n result += ALPHABET.charAt(v);\n }\n return result;\n }\n function __decode(str, LIMIT) {\n LIMIT = LIMIT || 90;\n if (str.length < 8)\n return str + ' too short';\n if (str.length > LIMIT)\n return 'Exceeds length limit';\n // don't allow mixed case\n const lowered = str.toLowerCase();\n const uppered = str.toUpperCase();\n if (str !== lowered && str !== uppered)\n return 'Mixed-case string ' + str;\n str = lowered;\n const split = str.lastIndexOf('1');\n if (split === -1)\n return 'No separator character for ' + str;\n if (split === 0)\n return 'Missing prefix for ' + str;\n const prefix = str.slice(0, split);\n const wordChars = str.slice(split + 1);\n if (wordChars.length < 6)\n return 'Data too short';\n let chk = prefixChk(prefix);\n if (typeof chk === 'string')\n return chk;\n const words = [];\n for (let i = 0; i < wordChars.length; ++i) {\n const c = wordChars.charAt(i);\n const v = ALPHABET_MAP[c];\n if (v === undefined)\n return 'Unknown character ' + c;\n chk = polymodStep(chk) ^ v;\n // not in the checksum?\n if (i + 6 >= wordChars.length)\n continue;\n words.push(v);\n }\n if (chk !== ENCODING_CONST)\n return 'Invalid checksum for ' + str;\n return { prefix, words };\n }\n function decodeUnsafe(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n }\n function decode(str, LIMIT) {\n const res = __decode(str, LIMIT);\n if (typeof res === 'object')\n return res;\n throw new Error(res);\n }\n return {\n decodeUnsafe,\n decode,\n encode,\n toWords,\n fromWordsUnsafe,\n fromWords,\n };\n}\nexports.bech32 = getLibraryFromEncoding('bech32');\nexports.bech32m = getLibraryFromEncoding('bech32m');\n", null, "'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n", null, "'use strict'\nvar ALPHABET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l'\n\n// pre-compute lookup table\nvar ALPHABET_MAP = {}\nfor (var z = 0; z < ALPHABET.length; z++) {\n var x = ALPHABET.charAt(z)\n\n if (ALPHABET_MAP[x] !== undefined) throw new TypeError(x + ' is ambiguous')\n ALPHABET_MAP[x] = z\n}\n\nfunction polymodStep (pre) {\n var b = pre >> 25\n return ((pre & 0x1FFFFFF) << 5) ^\n (-((b >> 0) & 1) & 0x3b6a57b2) ^\n (-((b >> 1) & 1) & 0x26508e6d) ^\n (-((b >> 2) & 1) & 0x1ea119fa) ^\n (-((b >> 3) & 1) & 0x3d4233dd) ^\n (-((b >> 4) & 1) & 0x2a1462b3)\n}\n\nfunction prefixChk (prefix) {\n var chk = 1\n for (var i = 0; i < prefix.length; ++i) {\n var c = prefix.charCodeAt(i)\n if (c < 33 || c > 126) return 'Invalid prefix (' + prefix + ')'\n\n chk = polymodStep(chk) ^ (c >> 5)\n }\n chk = polymodStep(chk)\n\n for (i = 0; i < prefix.length; ++i) {\n var v = prefix.charCodeAt(i)\n chk = polymodStep(chk) ^ (v & 0x1f)\n }\n return chk\n}\n\nfunction encode (prefix, words, LIMIT) {\n LIMIT = LIMIT || 90\n if ((prefix.length + 7 + words.length) > LIMIT) throw new TypeError('Exceeds length limit')\n\n prefix = prefix.toLowerCase()\n\n // determine chk mod\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') throw new Error(chk)\n\n var result = prefix + '1'\n for (var i = 0; i < words.length; ++i) {\n var x = words[i]\n if ((x >> 5) !== 0) throw new Error('Non 5-bit word')\n\n chk = polymodStep(chk) ^ x\n result += ALPHABET.charAt(x)\n }\n\n for (i = 0; i < 6; ++i) {\n chk = polymodStep(chk)\n }\n chk ^= 1\n\n for (i = 0; i < 6; ++i) {\n var v = (chk >> ((5 - i) * 5)) & 0x1f\n result += ALPHABET.charAt(v)\n }\n\n return result\n}\n\nfunction __decode (str, LIMIT) {\n LIMIT = LIMIT || 90\n if (str.length < 8) return str + ' too short'\n if (str.length > LIMIT) return 'Exceeds length limit'\n\n // don't allow mixed case\n var lowered = str.toLowerCase()\n var uppered = str.toUpperCase()\n if (str !== lowered && str !== uppered) return 'Mixed-case string ' + str\n str = lowered\n\n var split = str.lastIndexOf('1')\n if (split === -1) return 'No separator character for ' + str\n if (split === 0) return 'Missing prefix for ' + str\n\n var prefix = str.slice(0, split)\n var wordChars = str.slice(split + 1)\n if (wordChars.length < 6) return 'Data too short'\n\n var chk = prefixChk(prefix)\n if (typeof chk === 'string') return chk\n\n var words = []\n for (var i = 0; i < wordChars.length; ++i) {\n var c = wordChars.charAt(i)\n var v = ALPHABET_MAP[c]\n if (v === undefined) return 'Unknown character ' + c\n chk = polymodStep(chk) ^ v\n\n // not in the checksum?\n if (i + 6 >= wordChars.length) continue\n words.push(v)\n }\n\n if (chk !== 1) return 'Invalid checksum for ' + str\n return { prefix: prefix, words: words }\n}\n\nfunction decodeUnsafe () {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n}\n\nfunction decode (str) {\n var res = __decode.apply(null, arguments)\n if (typeof res === 'object') return res\n\n throw new Error(res)\n}\n\nfunction convert (data, inBits, outBits, pad) {\n var value = 0\n var bits = 0\n var maxV = (1 << outBits) - 1\n\n var result = []\n for (var i = 0; i < data.length; ++i) {\n value = (value << inBits) | data[i]\n bits += inBits\n\n while (bits >= outBits) {\n bits -= outBits\n result.push((value >> bits) & maxV)\n }\n }\n\n if (pad) {\n if (bits > 0) {\n result.push((value << (outBits - bits)) & maxV)\n }\n } else {\n if (bits >= inBits) return 'Excess padding'\n if ((value << (outBits - bits)) & maxV) return 'Non-zero padding'\n }\n\n return result\n}\n\nfunction toWordsUnsafe (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n}\n\nfunction toWords (bytes) {\n var res = convert(bytes, 8, 5, true)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nfunction fromWordsUnsafe (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n}\n\nfunction fromWords (words) {\n var res = convert(words, 5, 8, false)\n if (Array.isArray(res)) return res\n\n throw new Error(res)\n}\n\nmodule.exports = {\n decodeUnsafe: decodeUnsafe,\n decode: decode,\n encode: encode,\n toWordsUnsafe: toWordsUnsafe,\n toWords: toWords,\n fromWordsUnsafe: fromWordsUnsafe,\n fromWords: fromWords\n}\n", null, null, null, null, null, "(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n i++;\n }\n\n // Clear words above the requested width so the result stays below 2 ** width\n for (; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n if (num === 0) {\n this.length = 1;\n this._normSign();\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.mod.abs();\n\n var half = num.abs().iushrn(1);\n var r2 = num.words[0] & 1;\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up, away from zero\n var up = new BN(1);\n up.negative = this.negative ^ num.negative;\n return dm.div.iadd(up);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n", null, null, null, "/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n", "/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n", "/**\n * @license\n * https://github.com/ealmansi/cashaddrjs\n * Copyright (c) 2017-2020 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\n/**\n * Validation utility.\n *\n * @module validation\n */\n\n/**\n * Error thrown when encoding or decoding fail due to invalid input.\n *\n * @constructor ValidationError\n * @param {string} message Error description.\n */\nfunction ValidationError(message) {\n var error = new Error();\n this.name = error.name = 'ValidationError';\n this.message = error.message = message;\n this.stack = error.stack;\n}\n\nValidationError.prototype = Object.create(Error.prototype);\n\n/**\n * Validates a given condition, throwing a {@link ValidationError} if\n * the given condition does not hold.\n *\n * @static\n * @param {boolean} condition Condition to validate.\n * @param {string} message Error message in case the condition does not hold.\n */\nfunction validate(condition, message) {\n if (!condition) {\n throw new ValidationError(message);\n }\n}\n\nmodule.exports = {\n ValidationError: ValidationError,\n validate: validate,\n};\n", "/**\n * @license\n * https://github.com/ealmansi/cashaddrjs\n * Copyright (c) 2017-2020 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\nvar validate = require('./validation').validate;\n\n/**\n * Base32 encoding and decoding.\n *\n * @module base32\n */\n\n/**\n * Charset containing the 32 symbols used in the base32 encoding.\n * @private\n */\nvar CHARSET = 'qpzry9x8gf2tvdw0s3jn54khce6mua7l';\n\n/**\n * Inverted index mapping each symbol into its index within the charset.\n * @private\n */\nvar CHARSET_INVERSE_INDEX = {\n 'q': 0, 'p': 1, 'z': 2, 'r': 3, 'y': 4, '9': 5, 'x': 6, '8': 7,\n 'g': 8, 'f': 9, '2': 10, 't': 11, 'v': 12, 'd': 13, 'w': 14, '0': 15,\n 's': 16, '3': 17, 'j': 18, 'n': 19, '5': 20, '4': 21, 'k': 22, 'h': 23,\n 'c': 24, 'e': 25, '6': 26, 'm': 27, 'u': 28, 'a': 29, '7': 30, 'l': 31,\n};\n\n/**\n * Encodes the given array of 5-bit integers as a base32-encoded string.\n *\n * @static\n * @param {Uint8Array} data Array of integers between 0 and 31 inclusive.\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction encode(data) {\n validate(data instanceof Uint8Array, 'Invalid data: ' + data + '.');\n var base32 = '';\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n validate(0 <= value && value < 32, 'Invalid value: ' + value + '.');\n base32 += CHARSET[value];\n }\n return base32;\n}\n\n/**\n * Decodes the given base32-encoded string into an array of 5-bit integers.\n *\n * @static\n * @param {string} string\n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction decode(string) {\n validate(typeof string === 'string', 'Invalid base32-encoded string: ' + string + '.');\n var data = new Uint8Array(string.length);\n for (var i = 0; i < string.length; ++i) {\n var value = string[i];\n validate(value in CHARSET_INVERSE_INDEX, 'Invalid value: ' + value + '.');\n data[i] = CHARSET_INVERSE_INDEX[value];\n }\n return data;\n}\n\nmodule.exports = {\n encode: encode,\n decode: decode,\n};\n", "var bigInt = (function (undefined) {\r\n \"use strict\";\r\n\r\n var BASE = 1e7,\r\n LOG_BASE = 7,\r\n MAX_INT = 9007199254740992,\r\n MAX_INT_ARR = smallToArray(MAX_INT),\r\n LOG_MAX_INT = Math.log(MAX_INT);\r\n\r\n function Integer(v, radix) {\r\n if (typeof v === \"undefined\") return Integer[0];\r\n if (typeof radix !== \"undefined\") return +radix === 10 ? parseValue(v) : parseBase(v, radix);\r\n return parseValue(v);\r\n }\r\n\r\n function BigInteger(value, sign) {\r\n this.value = value;\r\n this.sign = sign;\r\n this.isSmall = false;\r\n }\r\n BigInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function SmallInteger(value) {\r\n this.value = value;\r\n this.sign = value < 0;\r\n this.isSmall = true;\r\n }\r\n SmallInteger.prototype = Object.create(Integer.prototype);\r\n\r\n function isPrecise(n) {\r\n return -MAX_INT < n && n < MAX_INT;\r\n }\r\n\r\n function smallToArray(n) { // For performance reasons doesn't reference BASE, need to change this function if BASE changes\r\n if (n < 1e7)\r\n return [n];\r\n if (n < 1e14)\r\n return [n % 1e7, Math.floor(n / 1e7)];\r\n return [n % 1e7, Math.floor(n / 1e7) % 1e7, Math.floor(n / 1e14)];\r\n }\r\n\r\n function arrayToSmall(arr) { // If BASE changes this function may need to change\r\n trim(arr);\r\n var length = arr.length;\r\n if (length < 4 && compareAbs(arr, MAX_INT_ARR) < 0) {\r\n switch (length) {\r\n case 0: return 0;\r\n case 1: return arr[0];\r\n case 2: return arr[0] + arr[1] * BASE;\r\n default: return arr[0] + (arr[1] + arr[2] * BASE) * BASE;\r\n }\r\n }\r\n return arr;\r\n }\r\n\r\n function trim(v) {\r\n var i = v.length;\r\n while (v[--i] === 0);\r\n v.length = i + 1;\r\n }\r\n\r\n function createArray(length) { // function shamelessly stolen from Yaffle's library https://github.com/Yaffle/BigInteger\r\n var x = new Array(length);\r\n var i = -1;\r\n while (++i < length) {\r\n x[i] = 0;\r\n }\r\n return x;\r\n }\r\n\r\n function truncate(n) {\r\n if (n > 0) return Math.floor(n);\r\n return Math.ceil(n);\r\n }\r\n\r\n function add(a, b) { // assumes a and b are arrays with a.length >= b.length\r\n var l_a = a.length,\r\n l_b = b.length,\r\n r = new Array(l_a),\r\n carry = 0,\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l_b; i++) {\r\n sum = a[i] + b[i] + carry;\r\n carry = sum >= base ? 1 : 0;\r\n r[i] = sum - carry * base;\r\n }\r\n while (i < l_a) {\r\n sum = a[i] + carry;\r\n carry = sum === base ? 1 : 0;\r\n r[i++] = sum - carry * base;\r\n }\r\n if (carry > 0) r.push(carry);\r\n return r;\r\n }\r\n\r\n function addAny(a, b) {\r\n if (a.length >= b.length) return add(a, b);\r\n return add(b, a);\r\n }\r\n\r\n function addSmall(a, carry) { // assumes a is array, carry is number with 0 <= carry < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n sum, i;\r\n for (i = 0; i < l; i++) {\r\n sum = a[i] - base + carry;\r\n carry = Math.floor(sum / base);\r\n r[i] = sum - carry * base;\r\n carry += 1;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall) {\r\n return new BigInteger(addSmall(a, Math.abs(b)), this.sign);\r\n }\r\n return new BigInteger(addAny(a, b), this.sign);\r\n };\r\n BigInteger.prototype.plus = BigInteger.prototype.add;\r\n\r\n SmallInteger.prototype.add = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.subtract(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n if (isPrecise(a + b)) return new SmallInteger(a + b);\r\n b = smallToArray(Math.abs(b));\r\n }\r\n return new BigInteger(addSmall(b, Math.abs(a)), a < 0);\r\n };\r\n SmallInteger.prototype.plus = SmallInteger.prototype.add;\r\n\r\n function subtract(a, b) { // assumes a and b are arrays with a >= b\r\n var a_l = a.length,\r\n b_l = b.length,\r\n r = new Array(a_l),\r\n borrow = 0,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < b_l; i++) {\r\n difference = a[i] - borrow - b[i];\r\n if (difference < 0) {\r\n difference += base;\r\n borrow = 1;\r\n } else borrow = 0;\r\n r[i] = difference;\r\n }\r\n for (i = b_l; i < a_l; i++) {\r\n difference = a[i] - borrow;\r\n if (difference < 0) difference += base;\r\n else {\r\n r[i++] = difference;\r\n break;\r\n }\r\n r[i] = difference;\r\n }\r\n for (; i < a_l; i++) {\r\n r[i] = a[i];\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function subtractAny(a, b, sign) {\r\n var value;\r\n if (compareAbs(a, b) >= 0) {\r\n value = subtract(a, b);\r\n } else {\r\n value = subtract(b, a);\r\n sign = !sign;\r\n }\r\n value = arrayToSmall(value);\r\n if (typeof value === \"number\") {\r\n if (sign) value = -value;\r\n return new SmallInteger(value);\r\n }\r\n return new BigInteger(value, sign);\r\n }\r\n\r\n function subtractSmall(a, b, sign) { // assumes a is array, b is number with 0 <= b < MAX_INT\r\n var l = a.length,\r\n r = new Array(l),\r\n carry = -b,\r\n base = BASE,\r\n i, difference;\r\n for (i = 0; i < l; i++) {\r\n difference = a[i] + carry;\r\n carry = Math.floor(difference / base);\r\n difference %= base;\r\n r[i] = difference < 0 ? difference + base : difference;\r\n }\r\n r = arrayToSmall(r);\r\n if (typeof r === \"number\") {\r\n if (sign) r = -r;\r\n return new SmallInteger(r);\r\n } return new BigInteger(r, sign);\r\n }\r\n\r\n BigInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n if (this.sign !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var a = this.value, b = n.value;\r\n if (n.isSmall)\r\n return subtractSmall(a, Math.abs(b), this.sign);\r\n return subtractAny(a, b, this.sign);\r\n };\r\n BigInteger.prototype.minus = BigInteger.prototype.subtract;\r\n\r\n SmallInteger.prototype.subtract = function (v) {\r\n var n = parseValue(v);\r\n var a = this.value;\r\n if (a < 0 !== n.sign) {\r\n return this.add(n.negate());\r\n }\r\n var b = n.value;\r\n if (n.isSmall) {\r\n return new SmallInteger(a - b);\r\n }\r\n return subtractSmall(b, Math.abs(a), a >= 0);\r\n };\r\n SmallInteger.prototype.minus = SmallInteger.prototype.subtract;\r\n\r\n BigInteger.prototype.negate = function () {\r\n return new BigInteger(this.value, !this.sign);\r\n };\r\n SmallInteger.prototype.negate = function () {\r\n var sign = this.sign;\r\n var small = new SmallInteger(-this.value);\r\n small.sign = !sign;\r\n return small;\r\n };\r\n\r\n BigInteger.prototype.abs = function () {\r\n return new BigInteger(this.value, false);\r\n };\r\n SmallInteger.prototype.abs = function () {\r\n return new SmallInteger(Math.abs(this.value));\r\n };\r\n\r\n function multiplyLong(a, b) {\r\n var a_l = a.length,\r\n b_l = b.length,\r\n l = a_l + b_l,\r\n r = createArray(l),\r\n base = BASE,\r\n product, carry, i, a_i, b_j;\r\n for (i = 0; i < a_l; ++i) {\r\n a_i = a[i];\r\n for (var j = 0; j < b_l; ++j) {\r\n b_j = b[j];\r\n product = a_i * b_j + r[i + j];\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n r[i + j + 1] += carry;\r\n }\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n function multiplySmall(a, b) { // assumes a is array, b is number with |b| < BASE\r\n var l = a.length,\r\n r = new Array(l),\r\n base = BASE,\r\n carry = 0,\r\n product, i;\r\n for (i = 0; i < l; i++) {\r\n product = a[i] * b + carry;\r\n carry = Math.floor(product / base);\r\n r[i] = product - carry * base;\r\n }\r\n while (carry > 0) {\r\n r[i++] = carry % base;\r\n carry = Math.floor(carry / base);\r\n }\r\n return r;\r\n }\r\n\r\n function shiftLeft(x, n) {\r\n var r = [];\r\n while (n-- > 0) r.push(0);\r\n return r.concat(x);\r\n }\r\n\r\n function multiplyKaratsuba(x, y) {\r\n var n = Math.max(x.length, y.length);\r\n\r\n if (n <= 30) return multiplyLong(x, y);\r\n n = Math.ceil(n / 2);\r\n\r\n var b = x.slice(n),\r\n a = x.slice(0, n),\r\n d = y.slice(n),\r\n c = y.slice(0, n);\r\n\r\n var ac = multiplyKaratsuba(a, c),\r\n bd = multiplyKaratsuba(b, d),\r\n abcd = multiplyKaratsuba(addAny(a, b), addAny(c, d));\r\n\r\n var product = addAny(addAny(ac, shiftLeft(subtract(subtract(abcd, ac), bd), n)), shiftLeft(bd, 2 * n));\r\n trim(product);\r\n return product;\r\n }\r\n\r\n // The following function is derived from a surface fit of a graph plotting the performance difference\r\n // between long multiplication and karatsuba multiplication versus the lengths of the two arrays.\r\n function useKaratsuba(l1, l2) {\r\n return -0.012 * l1 - 0.012 * l2 + 0.000015 * l1 * l2 > 0;\r\n }\r\n\r\n BigInteger.prototype.multiply = function (v) {\r\n var n = parseValue(v),\r\n a = this.value, b = n.value,\r\n sign = this.sign !== n.sign,\r\n abs;\r\n if (n.isSmall) {\r\n if (b === 0) return Integer[0];\r\n if (b === 1) return this;\r\n if (b === -1) return this.negate();\r\n abs = Math.abs(b);\r\n if (abs < BASE) {\r\n return new BigInteger(multiplySmall(a, abs), sign);\r\n }\r\n b = smallToArray(abs);\r\n }\r\n if (useKaratsuba(a.length, b.length)) // Karatsuba is only faster for certain array sizes\r\n return new BigInteger(multiplyKaratsuba(a, b), sign);\r\n return new BigInteger(multiplyLong(a, b), sign);\r\n };\r\n\r\n BigInteger.prototype.times = BigInteger.prototype.multiply;\r\n\r\n function multiplySmallAndArray(a, b, sign) { // a >= 0\r\n if (a < BASE) {\r\n return new BigInteger(multiplySmall(b, a), sign);\r\n }\r\n return new BigInteger(multiplyLong(b, smallToArray(a)), sign);\r\n }\r\n SmallInteger.prototype._multiplyBySmall = function (a) {\r\n if (isPrecise(a.value * this.value)) {\r\n return new SmallInteger(a.value * this.value);\r\n }\r\n return multiplySmallAndArray(Math.abs(a.value), smallToArray(Math.abs(this.value)), this.sign !== a.sign);\r\n };\r\n BigInteger.prototype._multiplyBySmall = function (a) {\r\n if (a.value === 0) return Integer[0];\r\n if (a.value === 1) return this;\r\n if (a.value === -1) return this.negate();\r\n return multiplySmallAndArray(Math.abs(a.value), this.value, this.sign !== a.sign);\r\n };\r\n SmallInteger.prototype.multiply = function (v) {\r\n return parseValue(v)._multiplyBySmall(this);\r\n };\r\n SmallInteger.prototype.times = SmallInteger.prototype.multiply;\r\n\r\n function square(a) {\r\n //console.assert(2 * BASE * BASE < MAX_INT);\r\n var l = a.length,\r\n r = createArray(l + l),\r\n base = BASE,\r\n product, carry, i, a_i, a_j;\r\n for (i = 0; i < l; i++) {\r\n a_i = a[i];\r\n carry = 0 - a_i * a_i;\r\n for (var j = i; j < l; j++) {\r\n a_j = a[j];\r\n product = 2 * (a_i * a_j) + r[i + j] + carry;\r\n carry = Math.floor(product / base);\r\n r[i + j] = product - carry * base;\r\n }\r\n r[i + l] = carry;\r\n }\r\n trim(r);\r\n return r;\r\n }\r\n\r\n BigInteger.prototype.square = function () {\r\n return new BigInteger(square(this.value), false);\r\n };\r\n\r\n SmallInteger.prototype.square = function () {\r\n var value = this.value * this.value;\r\n if (isPrecise(value)) return new SmallInteger(value);\r\n return new BigInteger(square(smallToArray(Math.abs(this.value))), false);\r\n };\r\n\r\n function divMod1(a, b) { // Left over from previous version. Performs faster than divMod2 on smaller input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n base = BASE,\r\n result = createArray(b.length),\r\n divisorMostSignificantDigit = b[b_l - 1],\r\n // normalization\r\n lambda = Math.ceil(base / (2 * divisorMostSignificantDigit)),\r\n remainder = multiplySmall(a, lambda),\r\n divisor = multiplySmall(b, lambda),\r\n quotientDigit, shift, carry, borrow, i, l, q;\r\n if (remainder.length <= a_l) remainder.push(0);\r\n divisor.push(0);\r\n divisorMostSignificantDigit = divisor[b_l - 1];\r\n for (shift = a_l - b_l; shift >= 0; shift--) {\r\n quotientDigit = base - 1;\r\n if (remainder[shift + b_l] !== divisorMostSignificantDigit) {\r\n quotientDigit = Math.floor((remainder[shift + b_l] * base + remainder[shift + b_l - 1]) / divisorMostSignificantDigit);\r\n }\r\n // quotientDigit <= base - 1\r\n carry = 0;\r\n borrow = 0;\r\n l = divisor.length;\r\n for (i = 0; i < l; i++) {\r\n carry += quotientDigit * divisor[i];\r\n q = Math.floor(carry / base);\r\n borrow += remainder[shift + i] - (carry - q * base);\r\n carry = q;\r\n if (borrow < 0) {\r\n remainder[shift + i] = borrow + base;\r\n borrow = -1;\r\n } else {\r\n remainder[shift + i] = borrow;\r\n borrow = 0;\r\n }\r\n }\r\n while (borrow !== 0) {\r\n quotientDigit -= 1;\r\n carry = 0;\r\n for (i = 0; i < l; i++) {\r\n carry += remainder[shift + i] - base + divisor[i];\r\n if (carry < 0) {\r\n remainder[shift + i] = carry + base;\r\n carry = 0;\r\n } else {\r\n remainder[shift + i] = carry;\r\n carry = 1;\r\n }\r\n }\r\n borrow += carry;\r\n }\r\n result[shift] = quotientDigit;\r\n }\r\n // denormalization\r\n remainder = divModSmall(remainder, lambda)[0];\r\n return [arrayToSmall(result), arrayToSmall(remainder)];\r\n }\r\n\r\n function divMod2(a, b) { // Implementation idea shamelessly stolen from Silent Matt's library http://silentmatt.com/biginteger/\r\n // Performs faster than divMod1 on larger input sizes.\r\n var a_l = a.length,\r\n b_l = b.length,\r\n result = [],\r\n part = [],\r\n base = BASE,\r\n guess, xlen, highx, highy, check;\r\n while (a_l) {\r\n part.unshift(a[--a_l]);\r\n trim(part);\r\n if (compareAbs(part, b) < 0) {\r\n result.push(0);\r\n continue;\r\n }\r\n xlen = part.length;\r\n highx = part[xlen - 1] * base + part[xlen - 2];\r\n highy = b[b_l - 1] * base + b[b_l - 2];\r\n if (xlen > b_l) {\r\n highx = (highx + 1) * base;\r\n }\r\n guess = Math.ceil(highx / highy);\r\n do {\r\n check = multiplySmall(b, guess);\r\n if (compareAbs(check, part) <= 0) break;\r\n guess--;\r\n } while (guess);\r\n result.push(guess);\r\n part = subtract(part, check);\r\n }\r\n result.reverse();\r\n return [arrayToSmall(result), arrayToSmall(part)];\r\n }\r\n\r\n function divModSmall(value, lambda) {\r\n var length = value.length,\r\n quotient = createArray(length),\r\n base = BASE,\r\n i, q, remainder, divisor;\r\n remainder = 0;\r\n for (i = length - 1; i >= 0; --i) {\r\n divisor = remainder * base + value[i];\r\n q = truncate(divisor / lambda);\r\n remainder = divisor - q * lambda;\r\n quotient[i] = q | 0;\r\n }\r\n return [quotient, remainder | 0];\r\n }\r\n\r\n function divModAny(self, v) {\r\n var value, n = parseValue(v);\r\n var a = self.value, b = n.value;\r\n var quotient;\r\n if (b === 0) throw new Error(\"Cannot divide by zero\");\r\n if (self.isSmall) {\r\n if (n.isSmall) {\r\n return [new SmallInteger(truncate(a / b)), new SmallInteger(a % b)];\r\n }\r\n return [Integer[0], self];\r\n }\r\n if (n.isSmall) {\r\n if (b === 1) return [self, Integer[0]];\r\n if (b == -1) return [self.negate(), Integer[0]];\r\n var abs = Math.abs(b);\r\n if (abs < BASE) {\r\n value = divModSmall(a, abs);\r\n quotient = arrayToSmall(value[0]);\r\n var remainder = value[1];\r\n if (self.sign) remainder = -remainder;\r\n if (typeof quotient === \"number\") {\r\n if (self.sign !== n.sign) quotient = -quotient;\r\n return [new SmallInteger(quotient), new SmallInteger(remainder)];\r\n }\r\n return [new BigInteger(quotient, self.sign !== n.sign), new SmallInteger(remainder)];\r\n }\r\n b = smallToArray(abs);\r\n }\r\n var comparison = compareAbs(a, b);\r\n if (comparison === -1) return [Integer[0], self];\r\n if (comparison === 0) return [Integer[self.sign === n.sign ? 1 : -1], Integer[0]];\r\n\r\n // divMod1 is faster on smaller input sizes\r\n if (a.length + b.length <= 200)\r\n value = divMod1(a, b);\r\n else value = divMod2(a, b);\r\n\r\n quotient = value[0];\r\n var qSign = self.sign !== n.sign,\r\n mod = value[1],\r\n mSign = self.sign;\r\n if (typeof quotient === \"number\") {\r\n if (qSign) quotient = -quotient;\r\n quotient = new SmallInteger(quotient);\r\n } else quotient = new BigInteger(quotient, qSign);\r\n if (typeof mod === \"number\") {\r\n if (mSign) mod = -mod;\r\n mod = new SmallInteger(mod);\r\n } else mod = new BigInteger(mod, mSign);\r\n return [quotient, mod];\r\n }\r\n\r\n BigInteger.prototype.divmod = function (v) {\r\n var result = divModAny(this, v);\r\n return {\r\n quotient: result[0],\r\n remainder: result[1]\r\n };\r\n };\r\n SmallInteger.prototype.divmod = BigInteger.prototype.divmod;\r\n\r\n BigInteger.prototype.divide = function (v) {\r\n return divModAny(this, v)[0];\r\n };\r\n SmallInteger.prototype.over = SmallInteger.prototype.divide = BigInteger.prototype.over = BigInteger.prototype.divide;\r\n\r\n BigInteger.prototype.mod = function (v) {\r\n return divModAny(this, v)[1];\r\n };\r\n SmallInteger.prototype.remainder = SmallInteger.prototype.mod = BigInteger.prototype.remainder = BigInteger.prototype.mod;\r\n\r\n BigInteger.prototype.pow = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value,\r\n value, x, y;\r\n if (b === 0) return Integer[1];\r\n if (a === 0) return Integer[0];\r\n if (a === 1) return Integer[1];\r\n if (a === -1) return n.isEven() ? Integer[1] : Integer[-1];\r\n if (n.sign) {\r\n return Integer[0];\r\n }\r\n if (!n.isSmall) throw new Error(\"The exponent \" + n.toString() + \" is too large.\");\r\n if (this.isSmall) {\r\n if (isPrecise(value = Math.pow(a, b)))\r\n return new SmallInteger(truncate(value));\r\n }\r\n x = this;\r\n y = Integer[1];\r\n while (true) {\r\n if (b & 1 === 1) {\r\n y = y.times(x);\r\n --b;\r\n }\r\n if (b === 0) break;\r\n b /= 2;\r\n x = x.square();\r\n }\r\n return y;\r\n };\r\n SmallInteger.prototype.pow = BigInteger.prototype.pow;\r\n\r\n BigInteger.prototype.modPow = function (exp, mod) {\r\n exp = parseValue(exp);\r\n mod = parseValue(mod);\r\n if (mod.isZero()) throw new Error(\"Cannot take modPow with modulus 0\");\r\n var r = Integer[1],\r\n base = this.mod(mod);\r\n while (exp.isPositive()) {\r\n if (base.isZero()) return Integer[0];\r\n if (exp.isOdd()) r = r.multiply(base).mod(mod);\r\n exp = exp.divide(2);\r\n base = base.square().mod(mod);\r\n }\r\n return r;\r\n };\r\n SmallInteger.prototype.modPow = BigInteger.prototype.modPow;\r\n\r\n function compareAbs(a, b) {\r\n if (a.length !== b.length) {\r\n return a.length > b.length ? 1 : -1;\r\n }\r\n for (var i = a.length - 1; i >= 0; i--) {\r\n if (a[i] !== b[i]) return a[i] > b[i] ? 1 : -1;\r\n }\r\n return 0;\r\n }\r\n\r\n BigInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) return 1;\r\n return compareAbs(a, b);\r\n };\r\n SmallInteger.prototype.compareAbs = function (v) {\r\n var n = parseValue(v),\r\n a = Math.abs(this.value),\r\n b = n.value;\r\n if (n.isSmall) {\r\n b = Math.abs(b);\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n }\r\n return -1;\r\n };\r\n\r\n BigInteger.prototype.compare = function (v) {\r\n // See discussion about comparison with Infinity:\r\n // https://github.com/peterolson/BigInteger.js/issues/61\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (this.sign !== n.sign) {\r\n return n.sign ? 1 : -1;\r\n }\r\n if (n.isSmall) {\r\n return this.sign ? -1 : 1;\r\n }\r\n return compareAbs(a, b) * (this.sign ? -1 : 1);\r\n };\r\n BigInteger.prototype.compareTo = BigInteger.prototype.compare;\r\n\r\n SmallInteger.prototype.compare = function (v) {\r\n if (v === Infinity) {\r\n return -1;\r\n }\r\n if (v === -Infinity) {\r\n return 1;\r\n }\r\n\r\n var n = parseValue(v),\r\n a = this.value,\r\n b = n.value;\r\n if (n.isSmall) {\r\n return a == b ? 0 : a > b ? 1 : -1;\r\n }\r\n if (a < 0 !== n.sign) {\r\n return a < 0 ? -1 : 1;\r\n }\r\n return a < 0 ? 1 : -1;\r\n };\r\n SmallInteger.prototype.compareTo = SmallInteger.prototype.compare;\r\n\r\n BigInteger.prototype.equals = function (v) {\r\n return this.compare(v) === 0;\r\n };\r\n SmallInteger.prototype.eq = SmallInteger.prototype.equals = BigInteger.prototype.eq = BigInteger.prototype.equals;\r\n\r\n BigInteger.prototype.notEquals = function (v) {\r\n return this.compare(v) !== 0;\r\n };\r\n SmallInteger.prototype.neq = SmallInteger.prototype.notEquals = BigInteger.prototype.neq = BigInteger.prototype.notEquals;\r\n\r\n BigInteger.prototype.greater = function (v) {\r\n return this.compare(v) > 0;\r\n };\r\n SmallInteger.prototype.gt = SmallInteger.prototype.greater = BigInteger.prototype.gt = BigInteger.prototype.greater;\r\n\r\n BigInteger.prototype.lesser = function (v) {\r\n return this.compare(v) < 0;\r\n };\r\n SmallInteger.prototype.lt = SmallInteger.prototype.lesser = BigInteger.prototype.lt = BigInteger.prototype.lesser;\r\n\r\n BigInteger.prototype.greaterOrEquals = function (v) {\r\n return this.compare(v) >= 0;\r\n };\r\n SmallInteger.prototype.geq = SmallInteger.prototype.greaterOrEquals = BigInteger.prototype.geq = BigInteger.prototype.greaterOrEquals;\r\n\r\n BigInteger.prototype.lesserOrEquals = function (v) {\r\n return this.compare(v) <= 0;\r\n };\r\n SmallInteger.prototype.leq = SmallInteger.prototype.lesserOrEquals = BigInteger.prototype.leq = BigInteger.prototype.lesserOrEquals;\r\n\r\n BigInteger.prototype.isEven = function () {\r\n return (this.value[0] & 1) === 0;\r\n };\r\n SmallInteger.prototype.isEven = function () {\r\n return (this.value & 1) === 0;\r\n };\r\n\r\n BigInteger.prototype.isOdd = function () {\r\n return (this.value[0] & 1) === 1;\r\n };\r\n SmallInteger.prototype.isOdd = function () {\r\n return (this.value & 1) === 1;\r\n };\r\n\r\n BigInteger.prototype.isPositive = function () {\r\n return !this.sign;\r\n };\r\n SmallInteger.prototype.isPositive = function () {\r\n return this.value > 0;\r\n };\r\n\r\n BigInteger.prototype.isNegative = function () {\r\n return this.sign;\r\n };\r\n SmallInteger.prototype.isNegative = function () {\r\n return this.value < 0;\r\n };\r\n\r\n BigInteger.prototype.isUnit = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isUnit = function () {\r\n return Math.abs(this.value) === 1;\r\n };\r\n\r\n BigInteger.prototype.isZero = function () {\r\n return false;\r\n };\r\n SmallInteger.prototype.isZero = function () {\r\n return this.value === 0;\r\n };\r\n BigInteger.prototype.isDivisibleBy = function (v) {\r\n var n = parseValue(v);\r\n var value = n.value;\r\n if (value === 0) return false;\r\n if (value === 1) return true;\r\n if (value === 2) return this.isEven();\r\n return this.mod(n).equals(Integer[0]);\r\n };\r\n SmallInteger.prototype.isDivisibleBy = BigInteger.prototype.isDivisibleBy;\r\n\r\n function isBasicPrime(v) {\r\n var n = v.abs();\r\n if (n.isUnit()) return false;\r\n if (n.equals(2) || n.equals(3) || n.equals(5)) return true;\r\n if (n.isEven() || n.isDivisibleBy(3) || n.isDivisibleBy(5)) return false;\r\n if (n.lesser(49)) return true;\r\n // we don't know if it's prime: let the other functions figure it out\r\n }\r\n \r\n function millerRabinTest(n, a) {\r\n var nPrev = n.prev(),\r\n b = nPrev,\r\n r = 0,\r\n d, t, i, x;\r\n while (b.isEven()) b = b.divide(2), r++;\r\n next : for (i = 0; i < a.length; i++) {\r\n if (n.lesser(a[i])) continue;\r\n x = bigInt(a[i]).modPow(b, n);\r\n if (x.equals(Integer[1]) || x.equals(nPrev)) continue;\r\n for (d = r - 1; d != 0; d--) {\r\n x = x.square().mod(n);\r\n if (x.isUnit()) return false; \r\n if (x.equals(nPrev)) continue next;\r\n }\r\n return false;\r\n }\r\n return true;\r\n }\r\n \r\n// Set \"strict\" to true to force GRH-supported lower bound of 2*log(N)^2\r\n BigInteger.prototype.isPrime = function (strict) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var bits = n.bitLength();\r\n if(bits <= 64)\r\n return millerRabinTest(n, [2, 325, 9375, 28178, 450775, 9780504, 1795265022]);\r\n var logN = Math.log(2) * bits;\r\n var t = Math.ceil((strict === true) ? (2 * Math.pow(logN, 2)) : logN);\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt(i + 2));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n SmallInteger.prototype.isPrime = BigInteger.prototype.isPrime;\r\n\r\n BigInteger.prototype.isProbablePrime = function (iterations) {\r\n var isPrime = isBasicPrime(this);\r\n if (isPrime !== undefined) return isPrime;\r\n var n = this.abs();\r\n var t = iterations === undefined ? 5 : iterations;\r\n for (var a = [], i = 0; i < t; i++) {\r\n a.push(bigInt.randBetween(2, n.minus(2)));\r\n }\r\n return millerRabinTest(n, a);\r\n };\r\n SmallInteger.prototype.isProbablePrime = BigInteger.prototype.isProbablePrime;\r\n\r\n BigInteger.prototype.modInv = function (n) {\r\n var t = bigInt.zero, newT = bigInt.one, r = parseValue(n), newR = this.abs(), q, lastT, lastR;\r\n while (!newR.equals(bigInt.zero)) {\r\n q = r.divide(newR);\r\n lastT = t;\r\n lastR = r;\r\n t = newT;\r\n r = newR;\r\n newT = lastT.subtract(q.multiply(newT));\r\n newR = lastR.subtract(q.multiply(newR));\r\n }\r\n if (!r.equals(1)) throw new Error(this.toString() + \" and \" + n.toString() + \" are not co-prime\");\r\n if (t.compare(0) === -1) {\r\n t = t.add(n);\r\n }\r\n if (this.isNegative()) {\r\n return t.negate();\r\n }\r\n return t;\r\n };\r\n\r\n SmallInteger.prototype.modInv = BigInteger.prototype.modInv;\r\n\r\n BigInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return subtractSmall(value, 1, this.sign);\r\n }\r\n return new BigInteger(addSmall(value, 1), this.sign);\r\n };\r\n SmallInteger.prototype.next = function () {\r\n var value = this.value;\r\n if (value + 1 < MAX_INT) return new SmallInteger(value + 1);\r\n return new BigInteger(MAX_INT_ARR, false);\r\n };\r\n\r\n BigInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (this.sign) {\r\n return new BigInteger(addSmall(value, 1), true);\r\n }\r\n return subtractSmall(value, 1, this.sign);\r\n };\r\n SmallInteger.prototype.prev = function () {\r\n var value = this.value;\r\n if (value - 1 > -MAX_INT) return new SmallInteger(value - 1);\r\n return new BigInteger(MAX_INT_ARR, true);\r\n };\r\n\r\n var powersOfTwo = [1];\r\n while (2 * powersOfTwo[powersOfTwo.length - 1] <= BASE) powersOfTwo.push(2 * powersOfTwo[powersOfTwo.length - 1]);\r\n var powers2Length = powersOfTwo.length, highestPower2 = powersOfTwo[powers2Length - 1];\r\n\r\n function shift_isSmall(n) {\r\n return ((typeof n === \"number\" || typeof n === \"string\") && +Math.abs(n) <= BASE) ||\r\n (n instanceof BigInteger && n.value.length <= 1);\r\n }\r\n\r\n BigInteger.prototype.shiftLeft = function (n) {\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n n = +n;\r\n if (n < 0) return this.shiftRight(-n);\r\n var result = this;\r\n if (result.isZero()) return result;\r\n while (n >= powers2Length) {\r\n result = result.multiply(highestPower2);\r\n n -= powers2Length - 1;\r\n }\r\n return result.multiply(powersOfTwo[n]);\r\n };\r\n SmallInteger.prototype.shiftLeft = BigInteger.prototype.shiftLeft;\r\n\r\n BigInteger.prototype.shiftRight = function (n) {\r\n var remQuo;\r\n if (!shift_isSmall(n)) {\r\n throw new Error(String(n) + \" is too large for shifting.\");\r\n }\r\n n = +n;\r\n if (n < 0) return this.shiftLeft(-n);\r\n var result = this;\r\n while (n >= powers2Length) {\r\n if (result.isZero() || (result.isNegative() && result.isUnit())) return result;\r\n remQuo = divModAny(result, highestPower2);\r\n result = remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n n -= powers2Length - 1;\r\n }\r\n remQuo = divModAny(result, powersOfTwo[n]);\r\n return remQuo[1].isNegative() ? remQuo[0].prev() : remQuo[0];\r\n };\r\n SmallInteger.prototype.shiftRight = BigInteger.prototype.shiftRight;\r\n\r\n function bitwise(x, y, fn) {\r\n y = parseValue(y);\r\n var xSign = x.isNegative(), ySign = y.isNegative();\r\n var xRem = xSign ? x.not() : x,\r\n yRem = ySign ? y.not() : y;\r\n var xDigit = 0, yDigit = 0;\r\n var xDivMod = null, yDivMod = null;\r\n var result = [];\r\n while (!xRem.isZero() || !yRem.isZero()) {\r\n xDivMod = divModAny(xRem, highestPower2);\r\n xDigit = xDivMod[1].toJSNumber();\r\n if (xSign) {\r\n xDigit = highestPower2 - 1 - xDigit; // two's complement for negative numbers\r\n }\r\n\r\n yDivMod = divModAny(yRem, highestPower2);\r\n yDigit = yDivMod[1].toJSNumber();\r\n if (ySign) {\r\n yDigit = highestPower2 - 1 - yDigit; // two's complement for negative numbers\r\n }\r\n\r\n xRem = xDivMod[0];\r\n yRem = yDivMod[0];\r\n result.push(fn(xDigit, yDigit));\r\n }\r\n var sum = fn(xSign ? 1 : 0, ySign ? 1 : 0) !== 0 ? bigInt(-1) : bigInt(0);\r\n for (var i = result.length - 1; i >= 0; i -= 1) {\r\n sum = sum.multiply(highestPower2).add(bigInt(result[i]));\r\n }\r\n return sum;\r\n }\r\n\r\n BigInteger.prototype.not = function () {\r\n return this.negate().prev();\r\n };\r\n SmallInteger.prototype.not = BigInteger.prototype.not;\r\n\r\n BigInteger.prototype.and = function (n) {\r\n return bitwise(this, n, function (a, b) { return a & b; });\r\n };\r\n SmallInteger.prototype.and = BigInteger.prototype.and;\r\n\r\n BigInteger.prototype.or = function (n) {\r\n return bitwise(this, n, function (a, b) { return a | b; });\r\n };\r\n SmallInteger.prototype.or = BigInteger.prototype.or;\r\n\r\n BigInteger.prototype.xor = function (n) {\r\n return bitwise(this, n, function (a, b) { return a ^ b; });\r\n };\r\n SmallInteger.prototype.xor = BigInteger.prototype.xor;\r\n\r\n var LOBMASK_I = 1 << 30, LOBMASK_BI = (BASE & -BASE) * (BASE & -BASE) | LOBMASK_I;\r\n function roughLOB(n) { // get lowestOneBit (rough)\r\n // SmallInteger: return Min(lowestOneBit(n), 1 << 30)\r\n // BigInteger: return Min(lowestOneBit(n), 1 << 14) [BASE=1e7]\r\n var v = n.value, x = typeof v === \"number\" ? v | LOBMASK_I : v[0] + v[1] * BASE | LOBMASK_BI;\r\n return x & -x;\r\n }\r\n\r\n function integerLogarithm(value, base) {\r\n if (base.compareTo(value) <= 0) {\r\n var tmp = integerLogarithm(value, base.square(base));\r\n var p = tmp.p;\r\n var e = tmp.e;\r\n var t = p.multiply(base);\r\n return t.compareTo(value) <= 0 ? { p: t, e: e * 2 + 1 } : { p: p, e: e * 2 };\r\n }\r\n return { p: bigInt(1), e: 0 };\r\n }\r\n\r\n BigInteger.prototype.bitLength = function () {\r\n var n = this;\r\n if (n.compareTo(bigInt(0)) < 0) {\r\n n = n.negate().subtract(bigInt(1));\r\n }\r\n if (n.compareTo(bigInt(0)) === 0) {\r\n return bigInt(0);\r\n }\r\n return bigInt(integerLogarithm(n, bigInt(2)).e).add(bigInt(1));\r\n }\r\n SmallInteger.prototype.bitLength = BigInteger.prototype.bitLength;\r\n\r\n function max(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.greater(b) ? a : b;\r\n }\r\n function min(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n return a.lesser(b) ? a : b;\r\n }\r\n function gcd(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n if (a.equals(b)) return a;\r\n if (a.isZero()) return b;\r\n if (b.isZero()) return a;\r\n var c = Integer[1], d, t;\r\n while (a.isEven() && b.isEven()) {\r\n d = Math.min(roughLOB(a), roughLOB(b));\r\n a = a.divide(d);\r\n b = b.divide(d);\r\n c = c.multiply(d);\r\n }\r\n while (a.isEven()) {\r\n a = a.divide(roughLOB(a));\r\n }\r\n do {\r\n while (b.isEven()) {\r\n b = b.divide(roughLOB(b));\r\n }\r\n if (a.greater(b)) {\r\n t = b; b = a; a = t;\r\n }\r\n b = b.subtract(a);\r\n } while (!b.isZero());\r\n return c.isUnit() ? a : a.multiply(c);\r\n }\r\n function lcm(a, b) {\r\n a = parseValue(a).abs();\r\n b = parseValue(b).abs();\r\n return a.divide(gcd(a, b)).multiply(b);\r\n }\r\n function randBetween(a, b) {\r\n a = parseValue(a);\r\n b = parseValue(b);\r\n var low = min(a, b), high = max(a, b);\r\n var range = high.subtract(low).add(1);\r\n if (range.isSmall) return low.add(Math.floor(Math.random() * range));\r\n var length = range.value.length - 1;\r\n var result = [], restricted = true;\r\n for (var i = length; i >= 0; i--) {\r\n var top = restricted ? range.value[i] : BASE;\r\n var digit = truncate(Math.random() * top);\r\n result.unshift(digit);\r\n if (digit < top) restricted = false;\r\n }\r\n result = arrayToSmall(result);\r\n return low.add(typeof result === \"number\" ? new SmallInteger(result) : new BigInteger(result, false));\r\n }\r\n var parseBase = function (text, base) {\r\n var length = text.length;\r\n var i;\r\n var absBase = Math.abs(base);\r\n for (var i = 0; i < length; i++) {\r\n var c = text[i].toLowerCase();\r\n if (c === \"-\") continue;\r\n if (/[a-z0-9]/.test(c)) {\r\n if (/[0-9]/.test(c) && +c >= absBase) {\r\n if (c === \"1\" && absBase === 1) continue;\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n } else if (c.charCodeAt(0) - 87 >= absBase) {\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n }\r\n }\r\n if (2 <= base && base <= 36) {\r\n if (length <= LOG_MAX_INT / Math.log(base)) {\r\n var result = parseInt(text, base);\r\n if (isNaN(result)) {\r\n throw new Error(c + \" is not a valid digit in base \" + base + \".\");\r\n }\r\n return new SmallInteger(parseInt(text, base));\r\n }\r\n }\r\n base = parseValue(base);\r\n var digits = [];\r\n var isNegative = text[0] === \"-\";\r\n for (i = isNegative ? 1 : 0; i < text.length; i++) {\r\n var c = text[i].toLowerCase(),\r\n charCode = c.charCodeAt(0);\r\n if (48 <= charCode && charCode <= 57) digits.push(parseValue(c));\r\n else if (97 <= charCode && charCode <= 122) digits.push(parseValue(c.charCodeAt(0) - 87));\r\n else if (c === \"<\") {\r\n var start = i;\r\n do { i++; } while (text[i] !== \">\");\r\n digits.push(parseValue(text.slice(start + 1, i)));\r\n }\r\n else throw new Error(c + \" is not a valid character\");\r\n }\r\n return parseBaseFromArray(digits, base, isNegative);\r\n };\r\n\r\n function parseBaseFromArray(digits, base, isNegative) {\r\n var val = Integer[0], pow = Integer[1], i;\r\n for (i = digits.length - 1; i >= 0; i--) {\r\n val = val.add(digits[i].times(pow));\r\n pow = pow.times(base);\r\n }\r\n return isNegative ? val.negate() : val;\r\n }\r\n\r\n function stringify(digit) {\r\n if (digit <= 35) {\r\n return \"0123456789abcdefghijklmnopqrstuvwxyz\".charAt(digit);\r\n }\r\n return \"<\" + digit + \">\";\r\n }\r\n\r\n function toBase(n, base) {\r\n base = bigInt(base);\r\n if (base.isZero()) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n throw new Error(\"Cannot convert nonzero numbers to base 0.\");\r\n }\r\n if (base.equals(-1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n if (n.isNegative())\r\n return {\r\n value: [].concat.apply([], Array.apply(null, Array(-n))\r\n .map(Array.prototype.valueOf, [1, 0])\r\n ),\r\n isNegative: false\r\n };\r\n\r\n var arr = Array.apply(null, Array(+n - 1))\r\n .map(Array.prototype.valueOf, [0, 1]);\r\n arr.unshift([1]);\r\n return {\r\n value: [].concat.apply([], arr),\r\n isNegative: false\r\n };\r\n }\r\n\r\n var neg = false;\r\n if (n.isNegative() && base.isPositive()) {\r\n neg = true;\r\n n = n.abs();\r\n }\r\n if (base.equals(1)) {\r\n if (n.isZero()) return { value: [0], isNegative: false };\r\n\r\n return {\r\n value: Array.apply(null, Array(+n))\r\n .map(Number.prototype.valueOf, 1),\r\n isNegative: neg\r\n };\r\n }\r\n var out = [];\r\n var left = n, divmod;\r\n while (left.isNegative() || left.compareAbs(base) >= 0) {\r\n divmod = left.divmod(base);\r\n left = divmod.quotient;\r\n var digit = divmod.remainder;\r\n if (digit.isNegative()) {\r\n digit = base.minus(digit).abs();\r\n left = left.next();\r\n }\r\n out.push(digit.toJSNumber());\r\n }\r\n out.push(left.toJSNumber());\r\n return { value: out.reverse(), isNegative: neg };\r\n }\r\n\r\n function toBaseString(n, base) {\r\n var arr = toBase(n, base);\r\n return (arr.isNegative ? \"-\" : \"\") + arr.value.map(stringify).join('');\r\n }\r\n\r\n BigInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n SmallInteger.prototype.toArray = function (radix) {\r\n return toBase(this, radix);\r\n };\r\n\r\n BigInteger.prototype.toString = function (radix) {\r\n if (radix === undefined) radix = 10;\r\n if (radix !== 10) return toBaseString(this, radix);\r\n var v = this.value, l = v.length, str = String(v[--l]), zeros = \"0000000\", digit;\r\n while (--l >= 0) {\r\n digit = String(v[l]);\r\n str += zeros.slice(digit.length) + digit;\r\n }\r\n var sign = this.sign ? \"-\" : \"\";\r\n return sign + str;\r\n };\r\n\r\n SmallInteger.prototype.toString = function (radix) {\r\n if (radix === undefined) radix = 10;\r\n if (radix != 10) return toBaseString(this, radix);\r\n return String(this.value);\r\n };\r\n BigInteger.prototype.toJSON = SmallInteger.prototype.toJSON = function () { return this.toString(); }\r\n\r\n BigInteger.prototype.valueOf = function () {\r\n return parseInt(this.toString(), 10);\r\n };\r\n BigInteger.prototype.toJSNumber = BigInteger.prototype.valueOf;\r\n\r\n SmallInteger.prototype.valueOf = function () {\r\n return this.value;\r\n };\r\n SmallInteger.prototype.toJSNumber = SmallInteger.prototype.valueOf;\r\n\r\n function parseStringValue(v) {\r\n if (isPrecise(+v)) {\r\n var x = +v;\r\n if (x === truncate(x))\r\n return new SmallInteger(x);\r\n throw new Error(\"Invalid integer: \" + v);\r\n }\r\n var sign = v[0] === \"-\";\r\n if (sign) v = v.slice(1);\r\n var split = v.split(/e/i);\r\n if (split.length > 2) throw new Error(\"Invalid integer: \" + split.join(\"e\"));\r\n if (split.length === 2) {\r\n var exp = split[1];\r\n if (exp[0] === \"+\") exp = exp.slice(1);\r\n exp = +exp;\r\n if (exp !== truncate(exp) || !isPrecise(exp)) throw new Error(\"Invalid integer: \" + exp + \" is not a valid exponent.\");\r\n var text = split[0];\r\n var decimalPlace = text.indexOf(\".\");\r\n if (decimalPlace >= 0) {\r\n exp -= text.length - decimalPlace - 1;\r\n text = text.slice(0, decimalPlace) + text.slice(decimalPlace + 1);\r\n }\r\n if (exp < 0) throw new Error(\"Cannot include negative exponent part for integers\");\r\n text += (new Array(exp + 1)).join(\"0\");\r\n v = text;\r\n }\r\n var isValid = /^([0-9][0-9]*)$/.test(v);\r\n if (!isValid) throw new Error(\"Invalid integer: \" + v);\r\n var r = [], max = v.length, l = LOG_BASE, min = max - l;\r\n while (max > 0) {\r\n r.push(+v.slice(min, max));\r\n min -= l;\r\n if (min < 0) min = 0;\r\n max -= l;\r\n }\r\n trim(r);\r\n return new BigInteger(r, sign);\r\n }\r\n\r\n function parseNumberValue(v) {\r\n if (isPrecise(v)) {\r\n if (v !== truncate(v)) throw new Error(v + \" is not an integer.\");\r\n return new SmallInteger(v);\r\n }\r\n return parseStringValue(v.toString());\r\n }\r\n\r\n function parseValue(v) {\r\n if (typeof v === \"number\") {\r\n return parseNumberValue(v);\r\n }\r\n if (typeof v === \"string\") {\r\n return parseStringValue(v);\r\n }\r\n return v;\r\n }\r\n // Pre-define numbers in range [-999,999]\r\n for (var i = 0; i < 1000; i++) {\r\n Integer[i] = new SmallInteger(i);\r\n if (i > 0) Integer[-i] = new SmallInteger(-i);\r\n }\r\n // Backwards compatibility\r\n Integer.one = Integer[1];\r\n Integer.zero = Integer[0];\r\n Integer.minusOne = Integer[-1];\r\n Integer.max = max;\r\n Integer.min = min;\r\n Integer.gcd = gcd;\r\n Integer.lcm = lcm;\r\n Integer.isInstance = function (x) { return x instanceof BigInteger || x instanceof SmallInteger; };\r\n Integer.randBetween = randBetween;\r\n\r\n Integer.fromArray = function (digits, base, isNegative) {\r\n return parseBaseFromArray(digits.map(parseValue), parseValue(base || 10), isNegative);\r\n };\r\n\r\n return Integer;\r\n})();\r\n\r\n// Node.js check\r\nif (typeof module !== \"undefined\" && module.hasOwnProperty(\"exports\")) {\r\n module.exports = bigInt;\r\n}\r\n\r\n//amd check\r\nif (typeof define === \"function\" && define.amd) {\r\n define(\"big-integer\", [], function () {\r\n return bigInt;\r\n });\r\n}\r\n", "// Copyright (c) 2017-2018 Emilio Almansi\n// Copyright (c) 2017 Pieter Wuille\n//\n// Permission is hereby granted, free of charge, to any person obtaining a copy\n// of this software and associated documentation files (the \"Software\"), to deal\n// in the Software without restriction, including without limitation the rights\n// to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n// copies of the Software, and to permit persons to whom the Software is\n// furnished to do so, subject to the following conditions:\n//\n// The above copyright notice and this permission notice shall be included in\n// all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n// AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n// OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n// THE SOFTWARE.\n\n'use strict';\n\nvar validate = require('./validation').validate;\n\n/**\n * Converts an array of integers made up of 'from' bits into an\n * array of integers made up of 'to' bits. The output array is\n * zero-padded if necessary, unless strict mode is true.\n * Throws a {@link ValidationError} if input is invalid.\n * Original by Pieter Wuille: https://github.com/sipa/bech32.\n *\n * @param {Uint8Array} data Array of integers made up of 'from' bits.\n * @param {number} from Length in bits of elements in the input array.\n * @param {number} to Length in bits of elements in the output array.\n * @param {bool} strictMode Require the conversion to be completed without padding.\n * @returns {Uint8Array}\n */\nmodule.exports = function(data, from, to, strictMode) {\n var length = strictMode\n ? Math.floor(data.length * from / to)\n : Math.ceil(data.length * from / to);\n var mask = (1 << to) - 1;\n var result = new Uint8Array(length);\n var index = 0;\n var accumulator = 0;\n var bits = 0;\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n validate(0 <= value && (value >> from) === 0, 'Invalid value: ' + value + '.');\n accumulator = (accumulator << from) | value;\n bits += from;\n while (bits >= to) {\n bits -= to;\n result[index] = (accumulator >> bits) & mask;\n ++index;\n }\n }\n if (!strictMode) {\n if (bits > 0) {\n result[index] = (accumulator << (to - bits)) & mask;\n ++index;\n }\n } else {\n validate(\n bits < from && ((accumulator << (to - bits)) & mask) === 0,\n 'Input cannot be converted to ' + to + ' bits without padding, but strict mode was used.'\n );\n }\n return result;\n};\n", "/**\n * @license\n * https://github.com/ealmansi/cashaddrjs\n * Copyright (c) 2017-2020 Emilio Almansi\n * Distributed under the MIT software license, see the accompanying\n * file LICENSE or http://www.opensource.org/licenses/mit-license.php.\n */\n\n'use strict';\n\nvar base32 = require('./base32');\nvar bigInt = require('big-integer');\nvar convertBits = require('./convertBits');\nvar validation = require('./validation');\nvar validate = validation.validate;\n\n/**\n * Encoding and decoding of the new Cash Address format for Bitcoin Cash.
\n * Compliant with the original cashaddr specification:\n * {@link https://github.com/bitcoincashorg/bitcoincash.org/blob/master/spec/cashaddr.md}\n * @module cashaddr\n */\n\n/**\n * Encodes a hash from a given type into a Bitcoin Cash address with the given prefix.\n * \n * @static\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'.\n * @param {string} type Type of address to generate. Either 'P2PKH' or 'P2SH'.\n * @param {Uint8Array} hash Hash to encode represented as an array of 8-bit integers.\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction encode(prefix, type, hash) {\n validate(typeof prefix === 'string' && isValidPrefix(prefix), 'Invalid prefix: ' + prefix + '.');\n validate(typeof type === 'string', 'Invalid type: ' + type + '.');\n validate(hash instanceof Uint8Array, 'Invalid hash: ' + hash + '.');\n var prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));\n var versionByte = getTypeBits(type) + getHashSizeBits(hash);\n var payloadData = toUint5Array(concat(new Uint8Array([versionByte]), hash));\n var checksumData = concat(concat(prefixData, payloadData), new Uint8Array(8));\n var payload = concat(payloadData, checksumToUint5Array(polymod(checksumData)));\n return prefix + ':' + base32.encode(payload);\n}\n\n/**\n * Decodes the given address into its constituting prefix, type and hash. See [#encode()]{@link encode}.\n * \n * @static\n * @param {string} address Address to decode. E.g.: 'bitcoincash:qpm2qsznhks23z7629mms6s4cwef74vcwvy22gdx6a'.\n * @returns {object}\n * @throws {ValidationError}\n */\nfunction decode(address) {\n validate(typeof address === 'string' && hasSingleCase(address), 'Invalid address: ' + address + '.');\n var pieces = address.toLowerCase().split(':');\n validate(pieces.length === 2, 'Missing prefix: ' + address + '.');\n var prefix = pieces[0];\n var payload = base32.decode(pieces[1]);\n validate(validChecksum(prefix, payload), 'Invalid checksum: ' + address + '.');\n var payloadData = fromUint5Array(payload.subarray(0, -8));\n var versionByte = payloadData[0];\n var hash = payloadData.subarray(1);\n validate(getHashSize(versionByte) === hash.length * 8, 'Invalid hash size: ' + address + '.');\n var type = getType(versionByte);\n return {\n prefix: prefix,\n type: type,\n hash: hash,\n };\n}\n\n/**\n * Error thrown when encoding or decoding fail due to invalid input.\n *\n * @constructor ValidationError\n * @param {string} message Error description.\n */\nvar ValidationError = validation.ValidationError;\n\n/**\n * Valid address prefixes.\n *\n * @private\n */\nvar VALID_PREFIXES = ['bitcoincash', 'bchtest', 'bchreg'];\n\n/**\n * Checks whether a string is a valid prefix; ie., it has a single letter case\n * and is one of 'bitcoincash', 'bchtest', or 'bchreg'.\n *\n * @private\n * @param {string} prefix \n * @returns {boolean}\n */\nfunction isValidPrefix(prefix) {\n return hasSingleCase(prefix) && VALID_PREFIXES.indexOf(prefix.toLowerCase()) !== -1;\n}\n\n/**\n * Derives an array from the given prefix to be used in the computation\n * of the address' checksum.\n *\n * @private\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'. \n * @returns {Uint8Array}\n */\nfunction prefixToUint5Array(prefix) {\n var result = new Uint8Array(prefix.length);\n for (var i = 0; i < prefix.length; ++i) {\n result[i] = prefix[i].charCodeAt(0) & 31;\n }\n return result;\n}\n\n/**\n * Returns an array representation of the given checksum to be encoded\n * within the address' payload.\n *\n * @private\n * @param {BigInteger} checksum Computed checksum.\n * @returns {Uint8Array}\n */\nfunction checksumToUint5Array(checksum) {\n var result = new Uint8Array(8);\n for (var i = 0; i < 8; ++i) {\n result[7 - i] = checksum.and(31).toJSNumber();\n checksum = checksum.shiftRight(5);\n }\n return result;\n}\n\n/**\n * Returns the bit representation of the given type within the version\n * byte.\n *\n * @private\n * @param {string} type Address type. Either 'P2PKH' or 'P2SH'.\n * @returns {number}\n * @throws {ValidationError}\n */\nfunction getTypeBits(type) {\n switch (type) {\n case 'P2PKH':\n return 0;\n case 'P2SH':\n return 8;\n default:\n throw new ValidationError('Invalid type: ' + type + '.');\n }\n}\n\n/**\n * Retrieves the address type from its bit representation within the\n * version byte.\n *\n * @private\n * @param {number} versionByte\n * @returns {string}\n * @throws {ValidationError}\n */\nfunction getType(versionByte) {\n switch (versionByte & 120) {\n case 0:\n return 'P2PKH';\n case 8:\n return 'P2SH';\n default:\n throw new ValidationError('Invalid address type in version byte: ' + versionByte + '.');\n }\n}\n\n/**\n * Returns the bit representation of the length in bits of the given\n * hash within the version byte.\n *\n * @private\n * @param {Uint8Array} hash Hash to encode represented as an array of 8-bit integers.\n * @returns {number}\n * @throws {ValidationError}\n */\nfunction getHashSizeBits(hash) {\n switch (hash.length * 8) {\n case 160:\n return 0;\n case 192:\n return 1;\n case 224:\n return 2;\n case 256:\n return 3;\n case 320:\n return 4;\n case 384:\n return 5;\n case 448:\n return 6;\n case 512:\n return 7;\n default:\n throw new ValidationError('Invalid hash size: ' + hash.length + '.');\n }\n}\n\n/**\n * Retrieves the the length in bits of the encoded hash from its bit\n * representation within the version byte.\n *\n * @private\n * @param {number} versionByte\n * @returns {number}\n */\nfunction getHashSize(versionByte) {\n switch (versionByte & 7) {\n case 0:\n return 160;\n case 1:\n return 192;\n case 2:\n return 224;\n case 3:\n return 256;\n case 4:\n return 320;\n case 5:\n return 384;\n case 6:\n return 448;\n case 7:\n return 512;\n }\n}\n\n/**\n * Converts an array of 8-bit integers into an array of 5-bit integers,\n * right-padding with zeroes if necessary.\n *\n * @private\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n */\nfunction toUint5Array(data) {\n return convertBits(data, 8, 5);\n}\n\n/**\n * Converts an array of 5-bit integers back into an array of 8-bit integers,\n * removing extra zeroes left from padding if necessary.\n * Throws a {@link ValidationError} if input is not a zero-padded array of 8-bit integers.\n *\n * @private\n * @param {Uint8Array} data\n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction fromUint5Array(data) {\n return convertBits(data, 5, 8, true);\n}\n\n/**\n * Returns the concatenation a and b.\n *\n * @private\n * @param {Uint8Array} a \n * @param {Uint8Array} b \n * @returns {Uint8Array}\n * @throws {ValidationError}\n */\nfunction concat(a, b) {\n var ab = new Uint8Array(a.length + b.length);\n ab.set(a);\n ab.set(b, a.length);\n return ab;\n}\n\n/**\n * Computes a checksum from the given input data as specified for the CashAddr\n * format: https://github.com/Bitcoin-UAHF/spec/blob/master/cashaddr.md.\n *\n * @private\n * @param {Uint8Array} data Array of 5-bit integers over which the checksum is to be computed.\n * @returns {BigInteger}\n */\nfunction polymod(data) {\n var GENERATOR = [0x98f2bc8e61, 0x79b76d99e2, 0xf33e5fb3c4, 0xae2eabe2a8, 0x1e4f43e470];\n var checksum = bigInt(1);\n for (var i = 0; i < data.length; ++i) {\n var value = data[i];\n var topBits = checksum.shiftRight(35);\n checksum = checksum.and(0x07ffffffff).shiftLeft(5).xor(value);\n for (var j = 0; j < GENERATOR.length; ++j) {\n if (topBits.shiftRight(j).and(1).equals(1)) {\n checksum = checksum.xor(GENERATOR[j]);\n }\n }\n }\n return checksum.xor(1);\n}\n\n/**\n * Verify that the payload has not been corrupted by checking that the\n * checksum is valid.\n * \n * @private\n * @param {string} prefix Network prefix. E.g.: 'bitcoincash'.\n * @param {Uint8Array} payload Array of 5-bit integers containing the address' payload.\n * @returns {boolean}\n */\nfunction validChecksum(prefix, payload) {\n var prefixData = concat(prefixToUint5Array(prefix), new Uint8Array(1));\n var checksumData = concat(prefixData, payload);\n return polymod(checksumData).equals(0);\n}\n\n/**\n * Returns true if, and only if, the given string contains either uppercase\n * or lowercase letters, but not both.\n *\n * @private\n * @param {string} string Input string.\n * @returns {boolean}\n */\nfunction hasSingleCase(string) {\n return string === string.toLowerCase() || string === string.toUpperCase();\n}\n\nmodule.exports = {\n encode: encode,\n decode: decode,\n ValidationError: ValidationError,\n};\n", "import type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\n\nexport type IsHexErrorType = ErrorType\n\nexport function isHex(\n value: unknown,\n { strict = true }: { strict?: boolean | undefined } = {},\n): value is Hex {\n if (!value) return false\n if (typeof value !== 'string') return false\n return strict ? /^0x[0-9a-fA-F]*$/.test(value) : value.startsWith('0x')\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nimport { type IsHexErrorType, isHex } from './isHex.js'\n\nexport type SizeErrorType = IsHexErrorType | ErrorType\n\n/**\n * @description Retrieves the size of the value (in bytes).\n *\n * @param value The value (hex or byte array) to retrieve the size of.\n * @returns The size of the value (in bytes).\n */\nexport function size(value: Hex | ByteArray) {\n if (isHex(value, { strict: false })) return Math.ceil((value.length - 2) / 2)\n return value.length\n}\n", "export const version = '2.55.10'\n", "import { version } from './version.js'\n\ntype ErrorConfig = {\n getDocsUrl?: ((args: BaseErrorParameters) => string | undefined) | undefined\n version?: string | undefined\n}\n\nlet errorConfig: ErrorConfig = {\n getDocsUrl: ({\n docsBaseUrl,\n docsPath = '',\n docsSlug,\n }: BaseErrorParameters) =>\n docsPath\n ? `${docsBaseUrl ?? 'https://viem.sh'}${docsPath}${\n docsSlug ? `#${docsSlug}` : ''\n }`\n : undefined,\n version: `viem@${version}`,\n}\n\nexport function setErrorConfig(config: ErrorConfig) {\n errorConfig = config\n}\n\ntype BaseErrorParameters = {\n cause?: BaseError | Error | undefined\n details?: string | undefined\n docsBaseUrl?: string | undefined\n docsPath?: string | undefined\n docsSlug?: string | undefined\n metaMessages?: string[] | undefined\n name?: string | undefined\n}\n\nexport type BaseErrorType = BaseError & { name: 'BaseError' }\nexport class BaseError extends Error {\n details: string\n docsPath?: string | undefined\n metaMessages?: string[] | undefined\n shortMessage: string\n version: string\n\n override name = 'BaseError'\n\n constructor(shortMessage: string, args: BaseErrorParameters = {}) {\n const details = (() => {\n if (args.cause instanceof BaseError) return args.cause.details\n if (args.cause?.message) return args.cause.message\n return args.details!\n })()\n const docsPath = (() => {\n if (args.cause instanceof BaseError)\n return args.cause.docsPath || args.docsPath\n return args.docsPath\n })()\n const docsUrl = errorConfig.getDocsUrl?.({ ...args, docsPath })\n\n const message = [\n shortMessage || 'An error occurred.',\n '',\n ...(args.metaMessages ? [...args.metaMessages, ''] : []),\n ...(docsUrl ? [`Docs: ${docsUrl}`] : []),\n ...(details ? [`Details: ${details}`] : []),\n ...(errorConfig.version ? [`Version: ${errorConfig.version}`] : []),\n ].join('\\n')\n\n super(message, args.cause ? { cause: args.cause } : undefined)\n\n this.details = details\n this.docsPath = docsPath\n this.metaMessages = args.metaMessages\n this.name = args.name ?? this.name\n this.shortMessage = shortMessage\n this.version = version\n }\n\n walk(): Error\n walk(fn: (err: unknown) => boolean): Error | null\n walk(fn?: any): any {\n return walk(this, fn)\n }\n}\n\nfunction walk(\n err: unknown,\n fn?: ((err: unknown) => boolean) | undefined,\n): unknown {\n if (fn?.(err)) return err\n if (\n err &&\n typeof err === 'object' &&\n 'cause' in err &&\n err.cause !== undefined\n )\n return walk(err.cause, fn)\n return fn ? null : err\n}\n", "import type { Abi, AbiEvent, AbiParameter } from 'abitype'\n\nimport type { Hex } from '../types/misc.js'\nimport { formatAbiItem, formatAbiParams } from '../utils/abi/formatAbiItem.js'\nimport { size } from '../utils/data/size.js'\n\nimport { BaseError } from './base.js'\n\nexport type AbiConstructorNotFoundErrorType = AbiConstructorNotFoundError & {\n name: 'AbiConstructorNotFoundError'\n}\nexport class AbiConstructorNotFoundError extends BaseError {\n constructor({ docsPath }: { docsPath: string }) {\n super(\n [\n 'A constructor was not found on the ABI.',\n 'Make sure you are using the correct ABI and that the constructor exists on it.',\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiConstructorNotFoundError',\n },\n )\n }\n}\n\nexport type AbiConstructorParamsNotFoundErrorType =\n AbiConstructorParamsNotFoundError & {\n name: 'AbiConstructorParamsNotFoundError'\n }\n\nexport class AbiConstructorParamsNotFoundError extends BaseError {\n constructor({ docsPath }: { docsPath: string }) {\n super(\n [\n 'Constructor arguments were provided (`args`), but a constructor parameters (`inputs`) were not found on the ABI.',\n 'Make sure you are using the correct ABI, and that the `inputs` attribute on the constructor exists.',\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiConstructorParamsNotFoundError',\n },\n )\n }\n}\n\nexport type AbiDecodingDataSizeInvalidErrorType =\n AbiDecodingDataSizeInvalidError & {\n name: 'AbiDecodingDataSizeInvalidError'\n }\nexport class AbiDecodingDataSizeInvalidError extends BaseError {\n constructor({ data, size }: { data: Hex; size: number }) {\n super(\n [\n `Data size of ${size} bytes is invalid.`,\n 'Size must be in increments of 32 bytes (size % 32 === 0).',\n ].join('\\n'),\n {\n metaMessages: [`Data: ${data} (${size} bytes)`],\n name: 'AbiDecodingDataSizeInvalidError',\n },\n )\n }\n}\n\nexport type AbiDecodingDataSizeTooSmallErrorType =\n AbiDecodingDataSizeTooSmallError & {\n name: 'AbiDecodingDataSizeTooSmallError'\n }\nexport class AbiDecodingDataSizeTooSmallError extends BaseError {\n data: Hex\n params: readonly AbiParameter[]\n size: number\n\n constructor({\n data,\n params,\n size,\n }: { data: Hex; params: readonly AbiParameter[]; size: number }) {\n super(\n [`Data size of ${size} bytes is too small for given parameters.`].join(\n '\\n',\n ),\n {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'AbiDecodingDataSizeTooSmallError',\n },\n )\n\n this.data = data\n this.params = params\n this.size = size\n }\n}\n\nexport type AbiDecodingZeroDataErrorType = AbiDecodingZeroDataError & {\n name: 'AbiDecodingZeroDataError'\n}\nexport class AbiDecodingZeroDataError extends BaseError {\n constructor({ cause }: { cause?: BaseError | Error | undefined } = {}) {\n super('Cannot decode zero data (\"0x\") with ABI parameters.', {\n name: 'AbiDecodingZeroDataError',\n cause,\n })\n }\n}\n\nexport type AbiEncodingArrayLengthMismatchErrorType =\n AbiEncodingArrayLengthMismatchError & {\n name: 'AbiEncodingArrayLengthMismatchError'\n }\nexport class AbiEncodingArrayLengthMismatchError extends BaseError {\n constructor({\n expectedLength,\n givenLength,\n type,\n }: { expectedLength: number; givenLength: number; type: string }) {\n super(\n [\n `ABI encoding array length mismatch for type ${type}.`,\n `Expected length: ${expectedLength}`,\n `Given length: ${givenLength}`,\n ].join('\\n'),\n { name: 'AbiEncodingArrayLengthMismatchError' },\n )\n }\n}\n\nexport type AbiEncodingBytesSizeMismatchErrorType =\n AbiEncodingBytesSizeMismatchError & {\n name: 'AbiEncodingBytesSizeMismatchError'\n }\nexport class AbiEncodingBytesSizeMismatchError extends BaseError {\n constructor({ expectedSize, value }: { expectedSize: number; value: Hex }) {\n super(\n `Size of bytes \"${value}\" (bytes${size(\n value,\n )}) does not match expected size (bytes${expectedSize}).`,\n { name: 'AbiEncodingBytesSizeMismatchError' },\n )\n }\n}\n\nexport type AbiEncodingLengthMismatchErrorType =\n AbiEncodingLengthMismatchError & {\n name: 'AbiEncodingLengthMismatchError'\n }\nexport class AbiEncodingLengthMismatchError extends BaseError {\n constructor({\n expectedLength,\n givenLength,\n }: { expectedLength: number; givenLength: number }) {\n super(\n [\n 'ABI encoding params/values length mismatch.',\n `Expected length (params): ${expectedLength}`,\n `Given length (values): ${givenLength}`,\n ].join('\\n'),\n { name: 'AbiEncodingLengthMismatchError' },\n )\n }\n}\n\nexport type AbiErrorInputsNotFoundErrorType = AbiErrorInputsNotFoundError & {\n name: 'AbiErrorInputsNotFoundError'\n}\nexport class AbiErrorInputsNotFoundError extends BaseError {\n constructor(errorName: string, { docsPath }: { docsPath: string }) {\n super(\n [\n `Arguments (\\`args\\`) were provided to \"${errorName}\", but \"${errorName}\" on the ABI does not contain any parameters (\\`inputs\\`).`,\n 'Cannot encode error result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the inputs exist on it.',\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiErrorInputsNotFoundError',\n },\n )\n }\n}\n\nexport type AbiErrorNotFoundErrorType = AbiErrorNotFoundError & {\n name: 'AbiErrorNotFoundError'\n}\nexport class AbiErrorNotFoundError extends BaseError {\n constructor(\n errorName?: string | undefined,\n { docsPath }: { docsPath?: string | undefined } = {},\n ) {\n super(\n [\n `Error ${errorName ? `\"${errorName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiErrorNotFoundError',\n },\n )\n }\n}\n\nexport type AbiErrorSignatureNotFoundErrorType =\n AbiErrorSignatureNotFoundError & {\n name: 'AbiErrorSignatureNotFoundError'\n }\nexport class AbiErrorSignatureNotFoundError extends BaseError {\n signature: Hex\n\n constructor(\n signature: Hex,\n {\n docsPath,\n cause,\n }: { docsPath: string; cause?: BaseError | Error | undefined },\n ) {\n super(\n [\n `Encoded error signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the error exists on it.',\n `You can look up the decoded signature here: https://4byte.sourcify.dev/?q=${signature}.`,\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiErrorSignatureNotFoundError',\n cause,\n },\n )\n this.signature = signature\n }\n}\n\nexport type AbiEventSignatureEmptyTopicsErrorType =\n AbiEventSignatureEmptyTopicsError & {\n name: 'AbiEventSignatureEmptyTopicsError'\n }\nexport class AbiEventSignatureEmptyTopicsError extends BaseError {\n constructor({ docsPath }: { docsPath: string }) {\n super('Cannot extract event signature from empty topics.', {\n docsPath,\n name: 'AbiEventSignatureEmptyTopicsError',\n })\n }\n}\n\nexport type AbiEventSignatureNotFoundErrorType =\n AbiEventSignatureNotFoundError & {\n name: 'AbiEventSignatureNotFoundError'\n }\nexport class AbiEventSignatureNotFoundError extends BaseError {\n constructor(signature: Hex, { docsPath }: { docsPath: string }) {\n super(\n [\n `Encoded event signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n `You can look up the signature here: https://4byte.sourcify.dev/?q=${signature}.`,\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiEventSignatureNotFoundError',\n },\n )\n }\n}\n\nexport type AbiEventNotFoundErrorType = AbiEventNotFoundError & {\n name: 'AbiEventNotFoundError'\n}\nexport class AbiEventNotFoundError extends BaseError {\n constructor(\n eventName?: string | undefined,\n { docsPath }: { docsPath?: string | undefined } = {},\n ) {\n super(\n [\n `Event ${eventName ? `\"${eventName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the event exists on it.',\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiEventNotFoundError',\n },\n )\n }\n}\n\nexport type AbiFunctionNotFoundErrorType = AbiFunctionNotFoundError & {\n name: 'AbiFunctionNotFoundError'\n}\nexport class AbiFunctionNotFoundError extends BaseError {\n constructor(\n functionName?: string | undefined,\n { docsPath }: { docsPath?: string | undefined } = {},\n ) {\n super(\n [\n `Function ${functionName ? `\"${functionName}\" ` : ''}not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiFunctionNotFoundError',\n },\n )\n }\n}\n\nexport type AbiFunctionOutputsNotFoundErrorType =\n AbiFunctionOutputsNotFoundError & {\n name: 'AbiFunctionOutputsNotFoundError'\n }\nexport class AbiFunctionOutputsNotFoundError extends BaseError {\n constructor(functionName: string, { docsPath }: { docsPath: string }) {\n super(\n [\n `Function \"${functionName}\" does not contain any \\`outputs\\` on ABI.`,\n 'Cannot decode function result without knowing what the parameter types are.',\n 'Make sure you are using the correct ABI and that the function exists on it.',\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiFunctionOutputsNotFoundError',\n },\n )\n }\n}\n\nexport type AbiFunctionSignatureNotFoundErrorType =\n AbiFunctionSignatureNotFoundError & {\n name: 'AbiFunctionSignatureNotFoundError'\n }\nexport class AbiFunctionSignatureNotFoundError extends BaseError {\n constructor(signature: Hex, { docsPath }: { docsPath: string }) {\n super(\n [\n `Encoded function signature \"${signature}\" not found on ABI.`,\n 'Make sure you are using the correct ABI and that the function exists on it.',\n `You can look up the signature here: https://4byte.sourcify.dev/?q=${signature}.`,\n ].join('\\n'),\n {\n docsPath,\n name: 'AbiFunctionSignatureNotFoundError',\n },\n )\n }\n}\n\nexport type AbiItemAmbiguityErrorType = AbiItemAmbiguityError & {\n name: 'AbiItemAmbiguityError'\n}\nexport class AbiItemAmbiguityError extends BaseError {\n constructor(\n x: { abiItem: Abi[number]; type: string },\n y: { abiItem: Abi[number]; type: string },\n ) {\n super('Found ambiguous types in overloaded ABI items.', {\n metaMessages: [\n `\\`${x.type}\\` in \\`${formatAbiItem(x.abiItem)}\\`, and`,\n `\\`${y.type}\\` in \\`${formatAbiItem(y.abiItem)}\\``,\n '',\n 'These types encode differently and cannot be distinguished at runtime.',\n 'Remove one of the ambiguous items in the ABI.',\n ],\n name: 'AbiItemAmbiguityError',\n })\n }\n}\n\nexport type BytesSizeMismatchErrorType = BytesSizeMismatchError & {\n name: 'BytesSizeMismatchError'\n}\nexport class BytesSizeMismatchError extends BaseError {\n constructor({\n expectedSize,\n givenSize,\n }: { expectedSize: number; givenSize: number }) {\n super(`Expected bytes${expectedSize}, got bytes${givenSize}.`, {\n name: 'BytesSizeMismatchError',\n })\n }\n}\n\nexport type DecodeLogDataMismatchErrorType = DecodeLogDataMismatch & {\n name: 'DecodeLogDataMismatch'\n}\nexport class DecodeLogDataMismatch extends BaseError {\n abiItem: AbiEvent\n data: Hex\n params: readonly AbiParameter[]\n size: number\n\n constructor({\n abiItem,\n data,\n params,\n size,\n }: {\n abiItem: AbiEvent\n data: Hex\n params: readonly AbiParameter[]\n size: number\n }) {\n super(\n [\n `Data size of ${size} bytes is too small for non-indexed event parameters.`,\n ].join('\\n'),\n {\n metaMessages: [\n `Params: (${formatAbiParams(params, { includeName: true })})`,\n `Data: ${data} (${size} bytes)`,\n ],\n name: 'DecodeLogDataMismatch',\n },\n )\n\n this.abiItem = abiItem\n this.data = data\n this.params = params\n this.size = size\n }\n}\n\nexport type DecodeLogTopicsMismatchErrorType = DecodeLogTopicsMismatch & {\n name: 'DecodeLogTopicsMismatch'\n}\nexport class DecodeLogTopicsMismatch extends BaseError {\n abiItem: AbiEvent\n\n constructor({\n abiItem,\n param,\n }: {\n abiItem: AbiEvent\n param: AbiParameter & { indexed: boolean }\n }) {\n super(\n [\n `Expected a topic for indexed event parameter${\n param.name ? ` \"${param.name}\"` : ''\n } on event \"${formatAbiItem(abiItem, { includeName: true })}\".`,\n ].join('\\n'),\n { name: 'DecodeLogTopicsMismatch' },\n )\n\n this.abiItem = abiItem\n }\n}\n\nexport type InvalidAbiEncodingTypeErrorType = InvalidAbiEncodingTypeError & {\n name: 'InvalidAbiEncodingTypeError'\n}\nexport class InvalidAbiEncodingTypeError extends BaseError {\n constructor(type: string, { docsPath }: { docsPath: string }) {\n super(\n [\n `Type \"${type}\" is not a valid encoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'),\n { docsPath, name: 'InvalidAbiEncodingType' },\n )\n }\n}\n\nexport type InvalidAbiDecodingTypeErrorType = InvalidAbiDecodingTypeError & {\n name: 'InvalidAbiDecodingTypeError'\n}\nexport class InvalidAbiDecodingTypeError extends BaseError {\n constructor(type: string, { docsPath }: { docsPath: string }) {\n super(\n [\n `Type \"${type}\" is not a valid decoding type.`,\n 'Please provide a valid ABI type.',\n ].join('\\n'),\n { docsPath, name: 'InvalidAbiDecodingType' },\n )\n }\n}\n\nexport type InvalidArrayErrorType = InvalidArrayError & {\n name: 'InvalidArrayError'\n}\nexport class InvalidArrayError extends BaseError {\n constructor(value: unknown) {\n super([`Value \"${value}\" is not a valid array.`].join('\\n'), {\n name: 'InvalidArrayError',\n })\n }\n}\n\nexport type InvalidDefinitionTypeErrorType = InvalidDefinitionTypeError & {\n name: 'InvalidDefinitionTypeError'\n}\nexport class InvalidDefinitionTypeError extends BaseError {\n constructor(type: string) {\n super(\n [\n `\"${type}\" is not a valid definition type.`,\n 'Valid types: \"function\", \"event\", \"error\"',\n ].join('\\n'),\n { name: 'InvalidDefinitionTypeError' },\n )\n }\n}\n\nexport type UnsupportedPackedAbiTypeErrorType = UnsupportedPackedAbiType & {\n name: 'UnsupportedPackedAbiType'\n}\nexport class UnsupportedPackedAbiType extends BaseError {\n constructor(type: unknown) {\n super(`Type \"${type}\" is not supported for packed encoding.`, {\n name: 'UnsupportedPackedAbiType',\n })\n }\n}\n", "import { BaseError } from './base.js'\n\nexport type SliceOffsetOutOfBoundsErrorType = SliceOffsetOutOfBoundsError & {\n name: 'SliceOffsetOutOfBoundsError'\n}\nexport class SliceOffsetOutOfBoundsError extends BaseError {\n constructor({\n offset,\n position,\n size,\n }: { offset: number; position: 'start' | 'end'; size: number }) {\n super(\n `Slice ${\n position === 'start' ? 'starting' : 'ending'\n } at offset \"${offset}\" is out-of-bounds (size: ${size}).`,\n { name: 'SliceOffsetOutOfBoundsError' },\n )\n }\n}\n\nexport type SizeExceedsPaddingSizeErrorType = SizeExceedsPaddingSizeError & {\n name: 'SizeExceedsPaddingSizeError'\n}\nexport class SizeExceedsPaddingSizeError extends BaseError {\n constructor({\n size,\n targetSize,\n type,\n }: {\n size: number\n targetSize: number\n type: 'hex' | 'bytes'\n }) {\n super(\n `${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} size (${size}) exceeds padding size (${targetSize}).`,\n { name: 'SizeExceedsPaddingSizeError' },\n )\n }\n}\n\nexport type InvalidBytesLengthErrorType = InvalidBytesLengthError & {\n name: 'InvalidBytesLengthError'\n}\nexport class InvalidBytesLengthError extends BaseError {\n constructor({\n size,\n targetSize,\n type,\n }: {\n size: number\n targetSize: number\n type: 'hex' | 'bytes'\n }) {\n super(\n `${type.charAt(0).toUpperCase()}${type\n .slice(1)\n .toLowerCase()} is expected to be ${targetSize} ${type} long, but is ${size} ${type} long.`,\n { name: 'InvalidBytesLengthError' },\n )\n }\n}\n", "import {\n SizeExceedsPaddingSizeError,\n type SizeExceedsPaddingSizeErrorType,\n} from '../../errors/data.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\ntype PadOptions = {\n dir?: 'left' | 'right' | undefined\n size?: number | null | undefined\n}\nexport type PadReturnType = value extends Hex\n ? Hex\n : ByteArray\n\nexport type PadErrorType = PadHexErrorType | PadBytesErrorType | ErrorType\n\nexport function pad(\n hexOrBytes: value,\n { dir, size = 32 }: PadOptions = {},\n): PadReturnType {\n if (typeof hexOrBytes === 'string')\n return padHex(hexOrBytes, { dir, size }) as PadReturnType\n return padBytes(hexOrBytes, { dir, size }) as PadReturnType\n}\n\nexport type PadHexErrorType = SizeExceedsPaddingSizeErrorType | ErrorType\n\nexport function padHex(hex_: Hex, { dir, size = 32 }: PadOptions = {}) {\n if (size === null) return hex_\n const hex = hex_.replace('0x', '')\n if (hex.length > size * 2)\n throw new SizeExceedsPaddingSizeError({\n size: Math.ceil(hex.length / 2),\n targetSize: size,\n type: 'hex',\n })\n\n return `0x${hex[dir === 'right' ? 'padEnd' : 'padStart'](\n size * 2,\n '0',\n )}` as Hex\n}\n\nexport type PadBytesErrorType = SizeExceedsPaddingSizeErrorType | ErrorType\n\nexport function padBytes(\n bytes: ByteArray,\n { dir, size = 32 }: PadOptions = {},\n) {\n if (size === null) return bytes\n if (bytes.length > size)\n throw new SizeExceedsPaddingSizeError({\n size: bytes.length,\n targetSize: size,\n type: 'bytes',\n })\n const paddedBytes = new Uint8Array(size)\n for (let i = 0; i < size; i++) {\n const padEnd = dir === 'right'\n paddedBytes[padEnd ? i : size - i - 1] =\n bytes[padEnd ? i : bytes.length - i - 1]\n }\n return paddedBytes\n}\n", "import type { ByteArray, Hex } from '../types/misc.js'\n\nimport { BaseError } from './base.js'\n\nexport type IntegerOutOfRangeErrorType = IntegerOutOfRangeError & {\n name: 'IntegerOutOfRangeError'\n}\nexport class IntegerOutOfRangeError extends BaseError {\n constructor({\n max,\n min,\n signed,\n size,\n value,\n }: {\n max?: string | undefined\n min: string\n signed?: boolean | undefined\n size?: number | undefined\n value: string\n }) {\n super(\n `Number \"${value}\" is not in safe ${\n size ? `${size * 8}-bit ${signed ? 'signed' : 'unsigned'} ` : ''\n }integer range ${max ? `(${min} to ${max})` : `(above ${min})`}`,\n { name: 'IntegerOutOfRangeError' },\n )\n }\n}\n\nexport type InvalidBytesBooleanErrorType = InvalidBytesBooleanError & {\n name: 'InvalidBytesBooleanError'\n}\nexport class InvalidBytesBooleanError extends BaseError {\n constructor(bytes: ByteArray) {\n super(\n `Bytes value \"${bytes}\" is not a valid boolean. The bytes array must contain a single byte of either a 0 or 1 value.`,\n {\n name: 'InvalidBytesBooleanError',\n },\n )\n }\n}\n\nexport type InvalidHexBooleanErrorType = InvalidHexBooleanError & {\n name: 'InvalidHexBooleanError'\n}\nexport class InvalidHexBooleanError extends BaseError {\n constructor(hex: Hex) {\n super(\n `Hex value \"${hex}\" is not a valid boolean. The hex value must be \"0x0\" (false) or \"0x1\" (true).`,\n { name: 'InvalidHexBooleanError' },\n )\n }\n}\n\nexport type InvalidHexValueErrorType = InvalidHexValueError & {\n name: 'InvalidHexValueError'\n}\nexport class InvalidHexValueError extends BaseError {\n constructor(value: Hex) {\n super(\n `Hex value \"${value}\" is an odd length (${value.length}). It must be an even length.`,\n { name: 'InvalidHexValueError' },\n )\n }\n}\n\nexport type RlpDepthLimitExceededErrorType = RlpDepthLimitExceededError & {\n name: 'RlpDepthLimitExceededError'\n}\nexport class RlpDepthLimitExceededError extends BaseError {\n constructor({ limit }: { limit: number }) {\n super(`RLP depth limit of \\`${limit}\\` exceeded.`, {\n name: 'RlpDepthLimitExceededError',\n })\n }\n}\n\nexport type RlpListBoundaryExceededErrorType = RlpListBoundaryExceededError & {\n name: 'RlpListBoundaryExceededError'\n}\nexport class RlpListBoundaryExceededError extends BaseError {\n constructor({ consumed, declared }: { consumed: number; declared: number }) {\n super(\n `RLP list items consumed \\`${consumed}\\` bytes but the list declared a length of \\`${declared}\\`.`,\n { name: 'RlpListBoundaryExceededError' },\n )\n }\n}\n\nexport type RlpTrailingBytesErrorType = RlpTrailingBytesError & {\n name: 'RlpTrailingBytesError'\n}\nexport class RlpTrailingBytesError extends BaseError {\n constructor({ count }: { count: number }) {\n super(\n `RLP payload encodes a single item, but \\`${count}\\` trailing ${\n count === 1 ? 'byte remains' : 'bytes remain'\n }.`,\n { name: 'RlpTrailingBytesError' },\n )\n }\n}\n\nexport type SizeOverflowErrorType = SizeOverflowError & {\n name: 'SizeOverflowError'\n}\nexport class SizeOverflowError extends BaseError {\n constructor({ givenSize, maxSize }: { givenSize: number; maxSize: number }) {\n super(\n `Size cannot exceed ${maxSize} bytes. Given size: ${givenSize} bytes.`,\n { name: 'SizeOverflowError' },\n )\n }\n}\n", "import {\n IntegerOutOfRangeError,\n type IntegerOutOfRangeErrorType,\n InvalidHexBooleanError,\n type InvalidHexBooleanErrorType,\n SizeOverflowError,\n type SizeOverflowErrorType,\n} from '../../errors/encoding.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type SizeErrorType, size as size_ } from '../data/size.js'\nimport { type TrimErrorType, trim } from '../data/trim.js'\n\nimport { type HexToBytesErrorType, hexToBytes } from './toBytes.js'\n\nexport type AssertSizeErrorType =\n | SizeOverflowErrorType\n | SizeErrorType\n | ErrorType\n\nexport function assertSize(\n hexOrBytes: Hex | ByteArray,\n { size }: { size: number },\n): void {\n if (size_(hexOrBytes) > size)\n throw new SizeOverflowError({\n givenSize: size_(hexOrBytes),\n maxSize: size,\n })\n}\n\nexport type FromHexParameters<\n to extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean',\n> =\n | to\n | {\n /** Size (in bytes) of the hex value. */\n size?: number | undefined\n /** Type to convert to. */\n to: to\n }\n\nexport type FromHexReturnType = to extends 'string'\n ? string\n : to extends 'bigint'\n ? bigint\n : to extends 'number'\n ? number\n : to extends 'bytes'\n ? ByteArray\n : to extends 'boolean'\n ? boolean\n : never\n\nexport type FromHexErrorType =\n | HexToNumberErrorType\n | HexToBigIntErrorType\n | HexToBoolErrorType\n | HexToStringErrorType\n | HexToBytesErrorType\n | ErrorType\n\n/**\n * Decodes a hex string into a string, number, bigint, boolean, or byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex\n * - Example: https://viem.sh/docs/utilities/fromHex#usage\n *\n * @param hex Hex string to decode.\n * @param toOrOpts Type to convert to or options.\n * @returns Decoded value.\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x1a4', 'number')\n * // 420\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c6421', 'string')\n * // 'Hello world'\n *\n * @example\n * import { fromHex } from 'viem'\n * const data = fromHex('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * to: 'string'\n * })\n * // 'Hello world'\n */\nexport function fromHex<\n to extends 'string' | 'bigint' | 'number' | 'bytes' | 'boolean',\n>(hex: Hex, toOrOpts: FromHexParameters): FromHexReturnType {\n const opts = typeof toOrOpts === 'string' ? { to: toOrOpts } : toOrOpts\n const to = opts.to\n\n if (to === 'number') return hexToNumber(hex, opts) as FromHexReturnType\n if (to === 'bigint') return hexToBigInt(hex, opts) as FromHexReturnType\n if (to === 'string') return hexToString(hex, opts) as FromHexReturnType\n if (to === 'boolean') return hexToBool(hex, opts) as FromHexReturnType\n return hexToBytes(hex, opts) as FromHexReturnType\n}\n\nexport type HexToBigIntOpts = {\n /** Whether or not the number of a signed representation. */\n signed?: boolean | undefined\n /** Size (in bytes) of the hex value. */\n size?: number | undefined\n}\n\nexport type HexToBigIntErrorType = AssertSizeErrorType | ErrorType\n\n/**\n * Decodes a hex value into a bigint.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobigint\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns BigInt value.\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x1a4', { signed: true })\n * // 420n\n *\n * @example\n * import { hexToBigInt } from 'viem'\n * const data = hexToBigInt('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420n\n */\nexport function hexToBigInt(hex: Hex, opts: HexToBigIntOpts = {}): bigint {\n const { signed } = opts\n\n if (opts.size) assertSize(hex, { size: opts.size })\n\n const value = BigInt(hex)\n if (!signed) return value\n\n const size = (hex.length - 2) / 2\n const max = (1n << (BigInt(size) * 8n - 1n)) - 1n\n if (value <= max) return value\n\n return value - BigInt(`0x${'f'.padStart(size * 2, 'f')}`) - 1n\n}\n\nexport type HexToBoolOpts = {\n /** Size (in bytes) of the hex value. */\n size?: number | undefined\n}\n\nexport type HexToBoolErrorType =\n | AssertSizeErrorType\n | InvalidHexBooleanErrorType\n | TrimErrorType\n | ErrorType\n\n/**\n * Decodes a hex value into a boolean.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextobool\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Boolean value.\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x01')\n * // true\n *\n * @example\n * import { hexToBool } from 'viem'\n * const data = hexToBool('0x0000000000000000000000000000000000000000000000000000000000000001', { size: 32 })\n * // true\n */\nexport function hexToBool(hex_: Hex, opts: HexToBoolOpts = {}): boolean {\n let hex = hex_\n if (opts.size) {\n assertSize(hex, { size: opts.size })\n hex = trim(hex)\n }\n if (trim(hex) === '0x00') return false\n if (trim(hex) === '0x01') return true\n throw new InvalidHexBooleanError(hex)\n}\n\nexport type HexToNumberOpts = HexToBigIntOpts\n\nexport type HexToNumberErrorType =\n | HexToBigIntErrorType\n | IntegerOutOfRangeErrorType\n | ErrorType\n\n/**\n * Decodes a hex string into a number.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextonumber\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns Number value.\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x1a4')\n * // 420\n *\n * @example\n * import { hexToNumber } from 'viem'\n * const data = hexToNumber('0x00000000000000000000000000000000000000000000000000000000000001a4', { size: 32 })\n * // 420\n */\nexport function hexToNumber(hex: Hex, opts: HexToNumberOpts = {}): number {\n const value = hexToBigInt(hex, opts)\n const number = Number(value)\n if (!Number.isSafeInteger(number))\n throw new IntegerOutOfRangeError({\n max: `${Number.MAX_SAFE_INTEGER}`,\n min: `${Number.MIN_SAFE_INTEGER}`,\n signed: opts.signed,\n size: opts.size,\n value: `${value}n`,\n })\n return number\n}\n\nexport type HexToStringOpts = {\n /** Size (in bytes) of the hex value. */\n size?: number | undefined\n}\n\nexport type HexToStringErrorType =\n | AssertSizeErrorType\n | HexToBytesErrorType\n | TrimErrorType\n | ErrorType\n\n/**\n * Decodes a hex value into a UTF-8 string.\n *\n * - Docs: https://viem.sh/docs/utilities/fromHex#hextostring\n *\n * @param hex Hex value to decode.\n * @param opts Options.\n * @returns String value.\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c6421')\n * // 'Hello world!'\n *\n * @example\n * import { hexToString } from 'viem'\n * const data = hexToString('0x48656c6c6f20576f726c64210000000000000000000000000000000000000000', {\n * size: 32,\n * })\n * // 'Hello world'\n */\nexport function hexToString(hex: Hex, opts: HexToStringOpts = {}): string {\n let bytes = hexToBytes(hex)\n if (opts.size) {\n assertSize(bytes, { size: opts.size })\n bytes = trim(bytes, { dir: 'right' })\n }\n return new TextDecoder().decode(bytes)\n}\n", "import {\n IntegerOutOfRangeError,\n type IntegerOutOfRangeErrorType,\n} from '../../errors/encoding.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type PadErrorType, pad } from '../data/pad.js'\n\nimport { type AssertSizeErrorType, assertSize } from './fromHex.js'\n\nconst hexes = /*#__PURE__*/ Array.from({ length: 256 }, (_v, i) =>\n i.toString(16).padStart(2, '0'),\n)\n\nexport type ToHexParameters = {\n /** The size (in bytes) of the output hex value. */\n size?: number | undefined\n}\n\nexport type ToHexErrorType =\n | BoolToHexErrorType\n | BytesToHexErrorType\n | NumberToHexErrorType\n | StringToHexErrorType\n | ErrorType\n\n/**\n * Encodes a string, number, bigint, or ByteArray into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex\n * - Example: https://viem.sh/docs/utilities/toHex#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world')\n * // '0x48656c6c6f20776f726c6421'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex(420)\n * // '0x1a4'\n *\n * @example\n * import { toHex } from 'viem'\n * const data = toHex('Hello world', { size: 32 })\n * // '0x48656c6c6f20776f726c64210000000000000000000000000000000000000000'\n */\nexport function toHex(\n value: string | number | bigint | boolean | ByteArray,\n opts: ToHexParameters = {},\n): Hex {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToHex(value, opts)\n if (typeof value === 'string') {\n return stringToHex(value, opts)\n }\n if (typeof value === 'boolean') return boolToHex(value, opts)\n return bytesToHex(value, opts)\n}\n\nexport type BoolToHexOpts = {\n /** The size (in bytes) of the output hex value. */\n size?: number | undefined\n}\n\nexport type BoolToHexErrorType = AssertSizeErrorType | PadErrorType | ErrorType\n\n/**\n * Encodes a boolean into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#booltohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true)\n * // '0x1'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(false)\n * // '0x0'\n *\n * @example\n * import { boolToHex } from 'viem'\n * const data = boolToHex(true, { size: 32 })\n * // '0x0000000000000000000000000000000000000000000000000000000000000001'\n */\nexport function boolToHex(value: boolean, opts: BoolToHexOpts = {}): Hex {\n const hex: Hex = `0x${Number(value)}`\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size })\n return pad(hex, { size: opts.size })\n }\n return hex\n}\n\nexport type BytesToHexOpts = {\n /** The size (in bytes) of the output hex value. */\n size?: number | undefined\n}\n\nexport type BytesToHexErrorType = AssertSizeErrorType | PadErrorType | ErrorType\n\n/**\n * Encodes a bytes array into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#bytestohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { bytesToHex } from 'viem'\n * const data = bytesToHex(Uint8Array.from([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33]), { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function bytesToHex(value: ByteArray, opts: BytesToHexOpts = {}): Hex {\n let string = ''\n for (let i = 0; i < value.length; i++) {\n string += hexes[value[i]]\n }\n const hex = `0x${string}` as const\n\n if (typeof opts.size === 'number') {\n assertSize(hex, { size: opts.size })\n return pad(hex, { dir: 'right', size: opts.size })\n }\n return hex\n}\n\nexport type NumberToHexOpts =\n | {\n /** Whether or not the number of a signed representation. */\n signed?: boolean | undefined\n /** The size (in bytes) of the output hex value. */\n size: number\n }\n | {\n signed?: undefined\n /** The size (in bytes) of the output hex value. */\n size?: number | undefined\n }\n\nexport type NumberToHexErrorType =\n | IntegerOutOfRangeErrorType\n | PadErrorType\n | ErrorType\n\n/**\n * Encodes a number or bigint into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#numbertohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420)\n * // '0x1a4'\n *\n * @example\n * import { numberToHex } from 'viem'\n * const data = numberToHex(420, { size: 32 })\n * // '0x00000000000000000000000000000000000000000000000000000000000001a4'\n */\nexport function numberToHex(\n value_: number | bigint,\n opts: NumberToHexOpts = {},\n): Hex {\n const { signed, size } = opts\n\n const value = BigInt(value_)\n\n let maxValue: bigint | number | undefined\n if (size) {\n if (signed) maxValue = (1n << (BigInt(size) * 8n - 1n)) - 1n\n else maxValue = 2n ** (BigInt(size) * 8n) - 1n\n } else if (typeof value_ === 'number') {\n maxValue = BigInt(Number.MAX_SAFE_INTEGER)\n }\n\n const minValue = typeof maxValue === 'bigint' && signed ? -maxValue - 1n : 0\n\n if ((maxValue && value > maxValue) || value < minValue) {\n const suffix = typeof value_ === 'bigint' ? 'n' : ''\n throw new IntegerOutOfRangeError({\n max: maxValue ? `${maxValue}${suffix}` : undefined,\n min: `${minValue}${suffix}`,\n signed,\n size,\n value: `${value_}${suffix}`,\n })\n }\n\n const hex = `0x${(\n signed && value < 0 ? (1n << BigInt(size * 8)) + BigInt(value) : value\n ).toString(16)}` as Hex\n if (size) return pad(hex, { size }) as Hex\n return hex\n}\n\nexport type StringToHexOpts = {\n /** The size (in bytes) of the output hex value. */\n size?: number | undefined\n}\n\nexport type StringToHexErrorType = BytesToHexErrorType | ErrorType\n\nconst encoder = /*#__PURE__*/ new TextEncoder()\n\n/**\n * Encodes a UTF-8 string into a hex string\n *\n * - Docs: https://viem.sh/docs/utilities/toHex#stringtohex\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Hex value.\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!')\n * // '0x48656c6c6f20576f726c6421'\n *\n * @example\n * import { stringToHex } from 'viem'\n * const data = stringToHex('Hello World!', { size: 32 })\n * // '0x48656c6c6f20576f726c64210000000000000000000000000000000000000000'\n */\nexport function stringToHex(value_: string, opts: StringToHexOpts = {}): Hex {\n const value = encoder.encode(value_)\n return bytesToHex(value, opts)\n}\n", "import { BaseError } from '../../errors/base.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type IsHexErrorType, isHex } from '../data/isHex.js'\nimport { type PadErrorType, pad } from '../data/pad.js'\n\nimport { type AssertSizeErrorType, assertSize } from './fromHex.js'\nimport {\n type NumberToHexErrorType,\n type NumberToHexOpts,\n numberToHex,\n} from './toHex.js'\n\nconst encoder = /*#__PURE__*/ new TextEncoder()\n\nexport type ToBytesParameters = {\n /** Size of the output bytes. */\n size?: number | undefined\n}\n\nexport type ToBytesErrorType =\n | NumberToBytesErrorType\n | BoolToBytesErrorType\n | HexToBytesErrorType\n | StringToBytesErrorType\n | IsHexErrorType\n | ErrorType\n\n/**\n * Encodes a UTF-8 string, hex value, bigint, number or boolean to a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes\n * - Example: https://viem.sh/docs/utilities/toBytes#usage\n *\n * @param value Value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes('Hello world')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { toBytes } from 'viem'\n * const data = toBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function toBytes(\n value: string | bigint | number | boolean | Hex,\n opts: ToBytesParameters = {},\n): ByteArray {\n if (typeof value === 'number' || typeof value === 'bigint')\n return numberToBytes(value, opts)\n if (typeof value === 'boolean') return boolToBytes(value, opts)\n if (isHex(value)) return hexToBytes(value, opts)\n return stringToBytes(value, opts)\n}\n\nexport type BoolToBytesOpts = {\n /** Size of the output bytes. */\n size?: number | undefined\n}\n\nexport type BoolToBytesErrorType =\n | AssertSizeErrorType\n | PadErrorType\n | ErrorType\n\n/**\n * Encodes a boolean into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#booltobytes\n *\n * @param value Boolean value to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true)\n * // Uint8Array([1])\n *\n * @example\n * import { boolToBytes } from 'viem'\n * const data = boolToBytes(true, { size: 32 })\n * // Uint8Array([0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1])\n */\nexport function boolToBytes(value: boolean, opts: BoolToBytesOpts = {}) {\n const bytes = new Uint8Array(1)\n bytes[0] = Number(value)\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size })\n return pad(bytes, { size: opts.size })\n }\n return bytes\n}\n\n// We use very optimized technique to convert hex string to byte array\nconst charCodeMap = {\n zero: 48,\n nine: 57,\n A: 65,\n F: 70,\n a: 97,\n f: 102,\n} as const\n\nfunction charCodeToBase16(char: number) {\n if (char >= charCodeMap.zero && char <= charCodeMap.nine)\n return char - charCodeMap.zero\n if (char >= charCodeMap.A && char <= charCodeMap.F)\n return char - (charCodeMap.A - 10)\n if (char >= charCodeMap.a && char <= charCodeMap.f)\n return char - (charCodeMap.a - 10)\n return undefined\n}\n\nexport type HexToBytesOpts = {\n /** Size of the output bytes. */\n size?: number | undefined\n}\n\nexport type HexToBytesErrorType = AssertSizeErrorType | PadErrorType | ErrorType\n\n/**\n * Encodes a hex string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#hextobytes\n *\n * @param hex Hex string to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33])\n *\n * @example\n * import { hexToBytes } from 'viem'\n * const data = hexToBytes('0x48656c6c6f20776f726c6421', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function hexToBytes(hex_: Hex, opts: HexToBytesOpts = {}): ByteArray {\n let hex = hex_\n if (opts.size) {\n assertSize(hex, { size: opts.size })\n hex = pad(hex, { dir: 'right', size: opts.size })\n }\n\n let hexString = hex.slice(2) as string\n if (hexString.length % 2) hexString = `0${hexString}`\n\n const length = hexString.length / 2\n const bytes = new Uint8Array(length)\n for (let index = 0, j = 0; index < length; index++) {\n const nibbleLeft = charCodeToBase16(hexString.charCodeAt(j++))\n const nibbleRight = charCodeToBase16(hexString.charCodeAt(j++))\n if (nibbleLeft === undefined || nibbleRight === undefined) {\n throw new BaseError(\n `Invalid byte sequence (\"${hexString[j - 2]}${\n hexString[j - 1]\n }\" in \"${hexString}\").`,\n )\n }\n bytes[index] = nibbleLeft * 16 + nibbleRight\n }\n return bytes\n}\n\nexport type NumberToBytesErrorType =\n | NumberToHexErrorType\n | HexToBytesErrorType\n | ErrorType\n\n/**\n * Encodes a number into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#numbertobytes\n *\n * @param value Number to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420)\n * // Uint8Array([1, 164])\n *\n * @example\n * import { numberToBytes } from 'viem'\n * const data = numberToBytes(420, { size: 4 })\n * // Uint8Array([0, 0, 1, 164])\n */\nexport function numberToBytes(\n value: bigint | number,\n opts?: NumberToHexOpts | undefined,\n) {\n const hex = numberToHex(value, opts)\n return hexToBytes(hex)\n}\n\nexport type StringToBytesOpts = {\n /** Size of the output bytes. */\n size?: number | undefined\n}\n\nexport type StringToBytesErrorType =\n | AssertSizeErrorType\n | PadErrorType\n | ErrorType\n\n/**\n * Encodes a UTF-8 string into a byte array.\n *\n * - Docs: https://viem.sh/docs/utilities/toBytes#stringtobytes\n *\n * @param value String to encode.\n * @param opts Options.\n * @returns Byte array value.\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!')\n * // Uint8Array([72, 101, 108, 108, 111, 32, 119, 111, 114, 108, 100, 33])\n *\n * @example\n * import { stringToBytes } from 'viem'\n * const data = stringToBytes('Hello world!', { size: 32 })\n * // Uint8Array([72, 101, 108, 108, 111, 32, 87, 111, 114, 108, 100, 33, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0])\n */\nexport function stringToBytes(\n value: string,\n opts: StringToBytesOpts = {},\n): ByteArray {\n const bytes = encoder.encode(value)\n if (typeof opts.size === 'number') {\n assertSize(bytes, { size: opts.size })\n return pad(bytes, { dir: 'right', size: opts.size })\n }\n return bytes\n}\n", "/**\n * SHA3 (keccak) hash function, based on a new \"Sponge function\" design.\n * Different from older hashes, the internal state is bigger than output size.\n *\n * Check out [FIPS-202](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.202.pdf),\n * [Website](https://keccak.team/keccak.html),\n * [the differences between SHA-3 and Keccak](https://crypto.stackexchange.com/questions/15727/what-are-the-key-differences-between-the-draft-sha-3-standard-and-the-keccak-sub).\n *\n * Check out `sha3-addons` module for cSHAKE, k12, and others.\n * @module\n */\nimport { rotlBH, rotlBL, rotlSH, rotlSL, split } from './_u64.ts';\n// prettier-ignore\nimport {\n abytes, aexists, anumber, aoutput,\n clean, createHasher, createXOFer, Hash,\n swap32IfBE,\n toBytes, u32,\n type CHash, type CHashXO, type HashXOF, type Input\n} from './utils.ts';\n\n// No __PURE__ annotations in sha3 header:\n// EVERYTHING is in fact used on every export.\n// Various per round constants calculations\nconst _0n = BigInt(0);\nconst _1n = BigInt(1);\nconst _2n = BigInt(2);\nconst _7n = BigInt(7);\nconst _256n = BigInt(256);\nconst _0x71n = BigInt(0x71);\nconst SHA3_PI: number[] = [];\nconst SHA3_ROTL: number[] = [];\nconst _SHA3_IOTA: bigint[] = [];\nfor (let round = 0, R = _1n, x = 1, y = 0; round < 24; round++) {\n // Pi\n [x, y] = [y, (2 * x + 3 * y) % 5];\n SHA3_PI.push(2 * (5 * y + x));\n // Rotational\n SHA3_ROTL.push((((round + 1) * (round + 2)) / 2) % 64);\n // Iota\n let t = _0n;\n for (let j = 0; j < 7; j++) {\n R = ((R << _1n) ^ ((R >> _7n) * _0x71n)) % _256n;\n if (R & _2n) t ^= _1n << ((_1n << /* @__PURE__ */ BigInt(j)) - _1n);\n }\n _SHA3_IOTA.push(t);\n}\nconst IOTAS = split(_SHA3_IOTA, true);\nconst SHA3_IOTA_H = IOTAS[0];\nconst SHA3_IOTA_L = IOTAS[1];\n\n// Left rotation (without 0, 32, 64)\nconst rotlH = (h: number, l: number, s: number) => (s > 32 ? rotlBH(h, l, s) : rotlSH(h, l, s));\nconst rotlL = (h: number, l: number, s: number) => (s > 32 ? rotlBL(h, l, s) : rotlSL(h, l, s));\n\n/** `keccakf1600` internal function, additionally allows to adjust round count. */\nexport function keccakP(s: Uint32Array, rounds: number = 24): void {\n const B = new Uint32Array(5 * 2);\n // NOTE: all indices are x2 since we store state as u32 instead of u64 (bigints to slow in js)\n for (let round = 24 - rounds; round < 24; round++) {\n // Theta \u03B8\n for (let x = 0; x < 10; x++) B[x] = s[x] ^ s[x + 10] ^ s[x + 20] ^ s[x + 30] ^ s[x + 40];\n for (let x = 0; x < 10; x += 2) {\n const idx1 = (x + 8) % 10;\n const idx0 = (x + 2) % 10;\n const B0 = B[idx0];\n const B1 = B[idx0 + 1];\n const Th = rotlH(B0, B1, 1) ^ B[idx1];\n const Tl = rotlL(B0, B1, 1) ^ B[idx1 + 1];\n for (let y = 0; y < 50; y += 10) {\n s[x + y] ^= Th;\n s[x + y + 1] ^= Tl;\n }\n }\n // Rho (\u03C1) and Pi (\u03C0)\n let curH = s[2];\n let curL = s[3];\n for (let t = 0; t < 24; t++) {\n const shift = SHA3_ROTL[t];\n const Th = rotlH(curH, curL, shift);\n const Tl = rotlL(curH, curL, shift);\n const PI = SHA3_PI[t];\n curH = s[PI];\n curL = s[PI + 1];\n s[PI] = Th;\n s[PI + 1] = Tl;\n }\n // Chi (\u03C7)\n for (let y = 0; y < 50; y += 10) {\n for (let x = 0; x < 10; x++) B[x] = s[y + x];\n for (let x = 0; x < 10; x++) s[y + x] ^= ~B[(x + 2) % 10] & B[(x + 4) % 10];\n }\n // Iota (\u03B9)\n s[0] ^= SHA3_IOTA_H[round];\n s[1] ^= SHA3_IOTA_L[round];\n }\n clean(B);\n}\n\n/** Keccak sponge function. */\nexport class Keccak extends Hash implements HashXOF {\n protected state: Uint8Array;\n protected pos = 0;\n protected posOut = 0;\n protected finished = false;\n protected state32: Uint32Array;\n protected destroyed = false;\n\n public blockLen: number;\n public suffix: number;\n public outputLen: number;\n protected enableXOF = false;\n protected rounds: number;\n\n // NOTE: we accept arguments in bytes instead of bits here.\n constructor(\n blockLen: number,\n suffix: number,\n outputLen: number,\n enableXOF = false,\n rounds: number = 24\n ) {\n super();\n this.blockLen = blockLen;\n this.suffix = suffix;\n this.outputLen = outputLen;\n this.enableXOF = enableXOF;\n this.rounds = rounds;\n // Can be passed from user as dkLen\n anumber(outputLen);\n // 1600 = 5x5 matrix of 64bit. 1600 bits === 200 bytes\n // 0 < blockLen < 200\n if (!(0 < blockLen && blockLen < 200))\n throw new Error('only keccak-f1600 function is supported');\n this.state = new Uint8Array(200);\n this.state32 = u32(this.state);\n }\n clone(): Keccak {\n return this._cloneInto();\n }\n protected keccak(): void {\n swap32IfBE(this.state32);\n keccakP(this.state32, this.rounds);\n swap32IfBE(this.state32);\n this.posOut = 0;\n this.pos = 0;\n }\n update(data: Input): this {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { blockLen, state } = this;\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n for (let i = 0; i < take; i++) state[this.pos++] ^= data[pos++];\n if (this.pos === blockLen) this.keccak();\n }\n return this;\n }\n protected finish(): void {\n if (this.finished) return;\n this.finished = true;\n const { state, suffix, pos, blockLen } = this;\n // Do the padding\n state[pos] ^= suffix;\n if ((suffix & 0x80) !== 0 && pos === blockLen - 1) this.keccak();\n state[blockLen - 1] ^= 0x80;\n this.keccak();\n }\n protected writeInto(out: Uint8Array): Uint8Array {\n aexists(this, false);\n abytes(out);\n this.finish();\n const bufferOut = this.state;\n const { blockLen } = this;\n for (let pos = 0, len = out.length; pos < len; ) {\n if (this.posOut >= blockLen) this.keccak();\n const take = Math.min(blockLen - this.posOut, len - pos);\n out.set(bufferOut.subarray(this.posOut, this.posOut + take), pos);\n this.posOut += take;\n pos += take;\n }\n return out;\n }\n xofInto(out: Uint8Array): Uint8Array {\n // Sha3/Keccak usage with XOF is probably mistake, only SHAKE instances can do XOF\n if (!this.enableXOF) throw new Error('XOF is not possible for this instance');\n return this.writeInto(out);\n }\n xof(bytes: number): Uint8Array {\n anumber(bytes);\n return this.xofInto(new Uint8Array(bytes));\n }\n digestInto(out: Uint8Array): Uint8Array {\n aoutput(out, this);\n if (this.finished) throw new Error('digest() was already called');\n this.writeInto(out);\n this.destroy();\n return out;\n }\n digest(): Uint8Array {\n return this.digestInto(new Uint8Array(this.outputLen));\n }\n destroy(): void {\n this.destroyed = true;\n clean(this.state);\n }\n _cloneInto(to?: Keccak): Keccak {\n const { blockLen, suffix, outputLen, rounds, enableXOF } = this;\n to ||= new Keccak(blockLen, suffix, outputLen, enableXOF, rounds);\n to.state32.set(this.state32);\n to.pos = this.pos;\n to.posOut = this.posOut;\n to.finished = this.finished;\n to.rounds = rounds;\n // Suffix can change in cSHAKE\n to.suffix = suffix;\n to.outputLen = outputLen;\n to.enableXOF = enableXOF;\n to.destroyed = this.destroyed;\n return to;\n }\n}\n\nconst gen = (suffix: number, blockLen: number, outputLen: number) =>\n createHasher(() => new Keccak(blockLen, suffix, outputLen));\n\n/** SHA3-224 hash function. */\nexport const sha3_224: CHash = /* @__PURE__ */ (() => gen(0x06, 144, 224 / 8))();\n/** SHA3-256 hash function. Different from keccak-256. */\nexport const sha3_256: CHash = /* @__PURE__ */ (() => gen(0x06, 136, 256 / 8))();\n/** SHA3-384 hash function. */\nexport const sha3_384: CHash = /* @__PURE__ */ (() => gen(0x06, 104, 384 / 8))();\n/** SHA3-512 hash function. */\nexport const sha3_512: CHash = /* @__PURE__ */ (() => gen(0x06, 72, 512 / 8))();\n\n/** keccak-224 hash function. */\nexport const keccak_224: CHash = /* @__PURE__ */ (() => gen(0x01, 144, 224 / 8))();\n/** keccak-256 hash function. Different from SHA3-256. */\nexport const keccak_256: CHash = /* @__PURE__ */ (() => gen(0x01, 136, 256 / 8))();\n/** keccak-384 hash function. */\nexport const keccak_384: CHash = /* @__PURE__ */ (() => gen(0x01, 104, 384 / 8))();\n/** keccak-512 hash function. */\nexport const keccak_512: CHash = /* @__PURE__ */ (() => gen(0x01, 72, 512 / 8))();\n\nexport type ShakeOpts = { dkLen?: number };\n\nconst genShake = (suffix: number, blockLen: number, outputLen: number) =>\n createXOFer, ShakeOpts>(\n (opts: ShakeOpts = {}) =>\n new Keccak(blockLen, suffix, opts.dkLen === undefined ? outputLen : opts.dkLen, true)\n );\n\n/** SHAKE128 XOF with 128-bit security. */\nexport const shake128: CHashXO = /* @__PURE__ */ (() => genShake(0x1f, 168, 128 / 8))();\n/** SHAKE256 XOF with 256-bit security. */\nexport const shake256: CHashXO = /* @__PURE__ */ (() => genShake(0x1f, 136, 256 / 8))();\n", "import { keccak_256 } from '@noble/hashes/sha3'\n\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\nimport { type IsHexErrorType, isHex } from '../data/isHex.js'\nimport { type ToBytesErrorType, toBytes } from '../encoding/toBytes.js'\nimport { type ToHexErrorType, toHex } from '../encoding/toHex.js'\n\ntype To = 'hex' | 'bytes'\n\nexport type Keccak256Hash =\n | (to extends 'bytes' ? ByteArray : never)\n | (to extends 'hex' ? Hex : never)\n\nexport type Keccak256ErrorType =\n | IsHexErrorType\n | ToBytesErrorType\n | ToHexErrorType\n | ErrorType\n\nexport function keccak256(\n value: Hex | ByteArray,\n to_?: to | undefined,\n): Keccak256Hash {\n const to = to_ || 'hex'\n const bytes = keccak_256(\n isHex(value, { strict: false }) ? toBytes(value) : value,\n )\n if (to === 'bytes') return bytes as Keccak256Hash\n return toHex(bytes) as Keccak256Hash\n}\n", "import { BaseError } from './base.js'\n\nexport type InvalidAddressErrorType = InvalidAddressError & {\n name: 'InvalidAddressError'\n}\nexport class InvalidAddressError extends BaseError {\n constructor({ address }: { address: string }) {\n super(`Address \"${address}\" is invalid.`, {\n metaMessages: [\n '- Address must be a hex value of 20 bytes (40 hex characters).',\n '- Address must match its checksum counterpart.',\n ],\n name: 'InvalidAddressError',\n })\n }\n}\n", "/**\n * Map with a LRU (Least recently used) policy.\n *\n * @link https://en.wikipedia.org/wiki/Cache_replacement_policies#LRU\n */\nexport class LruMap extends Map {\n maxSize: number\n\n constructor(size: number) {\n super()\n this.maxSize = size\n }\n\n override get(key: string) {\n const value = super.get(key)\n\n if (super.has(key)) {\n super.delete(key)\n super.set(key, value as value)\n }\n\n return value\n }\n\n override set(key: string, value: value) {\n if (super.has(key)) super.delete(key)\n super.set(key, value)\n if (this.maxSize && this.size > this.maxSize) {\n const firstKey = super.keys().next().value\n if (firstKey !== undefined) super.delete(firstKey)\n }\n return this\n }\n}\n", "import type { Address } from 'abitype'\n\nimport { InvalidAddressError } from '../../errors/address.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport {\n type StringToBytesErrorType,\n stringToBytes,\n} from '../encoding/toBytes.js'\nimport { type Keccak256ErrorType, keccak256 } from '../hash/keccak256.js'\nimport { LruMap } from '../lru.js'\nimport { type IsAddressErrorType, isAddress } from './isAddress.js'\n\nconst checksumAddressCache = /*#__PURE__*/ new LruMap
(8192)\n\nexport type ChecksumAddressErrorType =\n | Keccak256ErrorType\n | StringToBytesErrorType\n | ErrorType\n\nexport function checksumAddress(\n address_: Address,\n /**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\n chainId?: number | undefined,\n): Address {\n if (checksumAddressCache.has(`${address_}.${chainId}`))\n return checksumAddressCache.get(`${address_}.${chainId}`)!\n\n const hexAddress = chainId\n ? `${chainId}${address_.toLowerCase()}`\n : address_.substring(2).toLowerCase()\n const hash = keccak256(stringToBytes(hexAddress), 'bytes')\n\n const address = (\n chainId ? hexAddress.substring(`${chainId}0x`.length) : hexAddress\n ).split('')\n for (let i = 0; i < 40; i += 2) {\n if (hash[i >> 1] >> 4 >= 8 && address[i]) {\n address[i] = address[i].toUpperCase()\n }\n if ((hash[i >> 1] & 0x0f) >= 8 && address[i + 1]) {\n address[i + 1] = address[i + 1].toUpperCase()\n }\n }\n\n const result = `0x${address.join('')}` as const\n checksumAddressCache.set(`${address_}.${chainId}`, result)\n return result\n}\n\nexport type GetAddressErrorType =\n | ChecksumAddressErrorType\n | IsAddressErrorType\n | ErrorType\n\nexport function getAddress(\n address: string,\n /**\n * Warning: EIP-1191 checksum addresses are generally not backwards compatible with the\n * wider Ethereum ecosystem, meaning it will break when validated against an application/tool\n * that relies on EIP-55 checksum encoding (checksum without chainId).\n *\n * It is highly recommended to not use this feature unless you\n * know what you are doing.\n *\n * See more: https://github.com/ethereum/EIPs/issues/1121\n */\n chainId?: number,\n): Address {\n if (!isAddress(address, { strict: false }))\n throw new InvalidAddressError({ address })\n return checksumAddress(address, chainId)\n}\n", "import type { Address } from 'abitype'\nimport type { ErrorType } from '../../errors/utils.js'\nimport { LruMap } from '../lru.js'\nimport { checksumAddress } from './getAddress.js'\n\nconst addressRegex = /^0x[a-fA-F0-9]{40}$/\n\n/** @internal */\nexport const isAddressCache = /*#__PURE__*/ new LruMap(8192)\n\nexport type IsAddressOptions = {\n /**\n * Enables strict mode. Whether or not to compare the address against its checksum.\n *\n * @default true\n */\n strict?: boolean | undefined\n}\n\nexport type IsAddressErrorType = ErrorType\n\nexport function isAddress(\n address: string,\n options?: IsAddressOptions | undefined,\n): address is Address {\n const { strict = true } = options ?? {}\n const cacheKey = `${address}.${strict}`\n\n if (isAddressCache.has(cacheKey)) return isAddressCache.get(cacheKey)!\n\n const result = (() => {\n if (!addressRegex.test(address)) return false\n if (address.toLowerCase() === address) return true\n if (strict) return checksumAddress(address as Address) === address\n return true\n })()\n isAddressCache.set(cacheKey, result)\n return result\n}\n", "import type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nexport type ConcatReturnType = value extends Hex\n ? Hex\n : ByteArray\n\nexport type ConcatErrorType =\n | ConcatBytesErrorType\n | ConcatHexErrorType\n | ErrorType\n\nexport function concat(\n values: readonly value[],\n): ConcatReturnType {\n if (typeof values[0] === 'string')\n return concatHex(values as readonly Hex[]) as ConcatReturnType\n return concatBytes(values as readonly ByteArray[]) as ConcatReturnType\n}\n\nexport type ConcatBytesErrorType = ErrorType\n\nexport function concatBytes(values: readonly ByteArray[]): ByteArray {\n let length = 0\n for (const arr of values) {\n length += arr.length\n }\n const result = new Uint8Array(length)\n let offset = 0\n for (const arr of values) {\n result.set(arr, offset)\n offset += arr.length\n }\n return result\n}\n\nexport type ConcatHexErrorType = ErrorType\n\nexport function concatHex(values: readonly Hex[]): Hex {\n return `0x${(values as Hex[]).reduce(\n (acc, x) => acc + x.replace('0x', ''),\n '',\n )}`\n}\n", "import {\n SliceOffsetOutOfBoundsError,\n type SliceOffsetOutOfBoundsErrorType,\n} from '../../errors/data.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { ByteArray, Hex } from '../../types/misc.js'\n\nimport { type IsHexErrorType, isHex } from './isHex.js'\nimport { type SizeErrorType, size } from './size.js'\n\nexport type SliceReturnType = value extends Hex\n ? Hex\n : ByteArray\n\nexport type SliceErrorType =\n | IsHexErrorType\n | SliceBytesErrorType\n | SliceHexErrorType\n | ErrorType\n\n/**\n * @description Returns a section of the hex or byte array given a start/end bytes offset.\n *\n * @param value The hex or byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function slice(\n value: value,\n start?: number | undefined,\n end?: number | undefined,\n { strict }: { strict?: boolean | undefined } = {},\n): SliceReturnType {\n if (isHex(value, { strict: false }))\n return sliceHex(value as Hex, start, end, {\n strict,\n }) as SliceReturnType\n return sliceBytes(value as ByteArray, start, end, {\n strict,\n }) as SliceReturnType\n}\n\nexport type AssertStartOffsetErrorType =\n | SliceOffsetOutOfBoundsErrorType\n | SizeErrorType\n | ErrorType\n\nfunction assertStartOffset(value: Hex | ByteArray, start?: number | undefined) {\n if (typeof start === 'number' && start > 0 && start > size(value) - 1)\n throw new SliceOffsetOutOfBoundsError({\n offset: start,\n position: 'start',\n size: size(value),\n })\n}\n\nexport type AssertEndOffsetErrorType =\n | SliceOffsetOutOfBoundsErrorType\n | SizeErrorType\n | ErrorType\n\nfunction assertEndOffset(\n value: Hex | ByteArray,\n start?: number | undefined,\n end?: number | undefined,\n) {\n if (\n typeof start === 'number' &&\n typeof end === 'number' &&\n size(value) !== end - start\n ) {\n throw new SliceOffsetOutOfBoundsError({\n offset: end,\n position: 'end',\n size: size(value),\n })\n }\n}\n\nexport type SliceBytesErrorType =\n | AssertStartOffsetErrorType\n | AssertEndOffsetErrorType\n | ErrorType\n\n/**\n * @description Returns a section of the byte array given a start/end bytes offset.\n *\n * @param value The byte array to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceBytes(\n value_: ByteArray,\n start?: number | undefined,\n end?: number | undefined,\n { strict }: { strict?: boolean | undefined } = {},\n): ByteArray {\n assertStartOffset(value_, start)\n const value = value_.slice(start, end)\n if (strict) assertEndOffset(value, start, end)\n return value\n}\n\nexport type SliceHexErrorType =\n | AssertStartOffsetErrorType\n | AssertEndOffsetErrorType\n | ErrorType\n\n/**\n * @description Returns a section of the hex value given a start/end bytes offset.\n *\n * @param value The hex value to slice.\n * @param start The start offset (in bytes).\n * @param end The end offset (in bytes).\n */\nexport function sliceHex(\n value_: Hex,\n start?: number | undefined,\n end?: number | undefined,\n { strict }: { strict?: boolean | undefined } = {},\n): Hex {\n assertStartOffset(value_, start)\n const value = `0x${value_\n .replace('0x', '')\n .slice((start ?? 0) * 2, (end ?? value_.length) * 2)}` as const\n if (strict) assertEndOffset(value, start, end)\n return value\n}\n", "export const arrayRegex = /^(.*)\\[([0-9]*)\\]$/\n\n// `bytes`: binary type of `M` bytes, `0 < M <= 32`\n// https://regexr.com/6va55\nexport const bytesRegex = /^bytes([1-9]|1[0-9]|2[0-9]|3[0-2])?$/\n\n// `(u)int`: (un)signed integer type of `M` bits, `0 < M <= 256`, `M % 8 == 0`\n// https://regexr.com/6v8hp\nexport const integerRegex =\n /^(u?int)(8|16|24|32|40|48|56|64|72|80|88|96|104|112|120|128|136|144|152|160|168|176|184|192|200|208|216|224|232|240|248|256)?$/\n", "import type {\n AbiParameter,\n AbiParameterKind,\n AbiParametersToPrimitiveTypes,\n AbiParameterToPrimitiveType,\n} from 'abitype'\n\nimport {\n AbiEncodingArrayLengthMismatchError,\n type AbiEncodingArrayLengthMismatchErrorType,\n AbiEncodingBytesSizeMismatchError,\n type AbiEncodingBytesSizeMismatchErrorType,\n AbiEncodingLengthMismatchError,\n type AbiEncodingLengthMismatchErrorType,\n InvalidAbiEncodingTypeError,\n type InvalidAbiEncodingTypeErrorType,\n InvalidArrayError,\n type InvalidArrayErrorType,\n} from '../../errors/abi.js'\nimport {\n InvalidAddressError,\n type InvalidAddressErrorType,\n} from '../../errors/address.js'\nimport { BaseError } from '../../errors/base.js'\nimport { IntegerOutOfRangeError } from '../../errors/encoding.js'\nimport type { ErrorType } from '../../errors/utils.js'\nimport type { Hex } from '../../types/misc.js'\nimport { type IsAddressErrorType, isAddress } from '../address/isAddress.js'\nimport { type ConcatHexErrorType, concatHex } from '../data/concat.js'\nimport { type PadHexErrorType, padHex } from '../data/pad.js'\nimport { type SizeErrorType, size } from '../data/size.js'\nimport { type SliceErrorType, slice } from '../data/slice.js'\nimport {\n type BoolToHexErrorType,\n boolToHex,\n type NumberToHexErrorType,\n numberToHex,\n type StringToHexErrorType,\n stringToHex,\n} from '../encoding/toHex.js'\nimport { integerRegex } from '../regex.js'\n\nexport type EncodeAbiParametersReturnType = Hex\n\nexport type EncodeAbiParametersErrorType =\n | AbiEncodingLengthMismatchErrorType\n | PrepareParamsErrorType\n | EncodeParamsErrorType\n | ErrorType\n\n/**\n * @description Encodes a list of primitive values into an ABI-encoded hex value.\n *\n * - Docs: https://viem.sh/docs/abi/encodeAbiParameters#encodeabiparameters\n *\n * Generates ABI encoded data using the [ABI specification](https://docs.soliditylang.org/en/latest/abi-spec), given a set of ABI parameters (inputs/outputs) and their corresponding values.\n *\n * @param params - a set of ABI Parameters (params), that can be in the shape of the inputs or outputs attribute of an ABI Item.\n * @param values - a set of values (values) that correspond to the given params.\n * @example\n * ```typescript\n * import { encodeAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * [\n * { name: 'x', type: 'string' },\n * { name: 'y', type: 'uint' },\n * { name: 'z', type: 'bool' }\n * ],\n * ['wagmi', 420n, true]\n * )\n * ```\n *\n * You can also pass in Human Readable parameters with the parseAbiParameters utility.\n *\n * @example\n * ```typescript\n * import { encodeAbiParameters, parseAbiParameters } from 'viem'\n *\n * const encodedData = encodeAbiParameters(\n * parseAbiParameters('string x, uint y, bool z'),\n * ['wagmi', 420n, true]\n * )\n * ```\n */\nexport function encodeAbiParameters<\n const params extends readonly AbiParameter[] | readonly unknown[],\n>(\n params: params,\n values: params extends readonly AbiParameter[]\n ? AbiParametersToPrimitiveTypes\n : never,\n): EncodeAbiParametersReturnType {\n if (params.length !== values.length)\n throw new AbiEncodingLengthMismatchError({\n expectedLength: params.length as number,\n givenLength: values.length as any,\n })\n // Prepare the parameters to determine dynamic types to encode.\n const preparedParams = prepareParams({\n params: params as readonly AbiParameter[],\n values: values as any,\n })\n return encodeParams(preparedParams)\n}\n\n/////////////////////////////////////////////////////////////////\n\ntype PreparedParam = { dynamic: boolean; encoded: Hex }\n\ntype TupleAbiParameter = AbiParameter & { components: readonly AbiParameter[] }\ntype Tuple = AbiParameterToPrimitiveType\n\ntype PrepareParamsErrorType = PrepareParamErrorType | ErrorType\n\nfunction prepareParams({\n params,\n values,\n}: {\n params: params\n values: AbiParametersToPrimitiveTypes\n}) {\n const preparedParams: PreparedParam[] = []\n for (let i = 0; i < params.length; i++) {\n preparedParams.push(prepareParam({ param: params[i], value: values[i] }))\n }\n return preparedParams\n}\n\ntype PrepareParamErrorType =\n | EncodeAddressErrorType\n | EncodeArrayErrorType\n | EncodeBytesErrorType\n | EncodeBoolErrorType\n | EncodeNumberErrorType\n | EncodeStringErrorType\n | EncodeTupleErrorType\n | GetArrayComponentsErrorType\n | InvalidAbiEncodingTypeErrorType\n | ErrorType\n\nfunction prepareParam({\n param,\n value,\n}: {\n param: param\n value: AbiParameterToPrimitiveType\n}): PreparedParam {\n const arrayComponents = getArrayComponents(param.type)\n if (arrayComponents) {\n const [length, type] = arrayComponents\n return encodeArray(value, { length, param: { ...param, type } })\n }\n if (param.type === 'tuple') {\n return encodeTuple(value as unknown as Tuple, {\n param: param as TupleAbiParameter,\n })\n }\n if (param.type === 'address') {\n return encodeAddress(value as unknown as Hex)\n }\n if (param.type === 'bool') {\n return encodeBool(value as unknown as boolean)\n }\n if (param.type.startsWith('uint') || param.type.startsWith('int')) {\n const signed = param.type.startsWith('int')\n const [, , size = '256'] = integerRegex.exec(param.type) ?? []\n return encodeNumber(value as unknown as number, {\n signed,\n size: Number(size),\n })\n }\n if (param.type.startsWith('bytes')) {\n return encodeBytes(value as unknown as Hex, { param })\n }\n if (param.type === 'string') {\n return encodeString(value as unknown as string)\n }\n throw new InvalidAbiEncodingTypeError(param.type, {\n docsPath: '/docs/contract/encodeAbiParameters',\n })\n}\n\n/////////////////////////////////////////////////////////////////\n\ntype EncodeParamsErrorType = NumberToHexErrorType | SizeErrorType | ErrorType\n\nfunction encodeParams(preparedParams: PreparedParam[]): Hex {\n // 1. Compute the size of the static part of the parameters.\n let staticSize = 0\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i]\n if (dynamic) staticSize += 32\n else staticSize += size(encoded)\n }\n\n // 2. Split the parameters into static and dynamic parts.\n const staticParams: Hex[] = []\n const dynamicParams: Hex[] = []\n let dynamicSize = 0\n for (let i = 0; i < preparedParams.length; i++) {\n const { dynamic, encoded } = preparedParams[i]\n if (dynamic) {\n staticParams.push(numberToHex(staticSize + dynamicSize, { size: 32 }))\n dynamicParams.push(encoded)\n dynamicSize += size(encoded)\n } else {\n staticParams.push(encoded)\n }\n }\n\n // 3. Concatenate static and dynamic parts.\n // `concatHex` returns `'0x'` for empty input (zero-width parameters).\n return concatHex([...staticParams, ...dynamicParams])\n}\n\n/////////////////////////////////////////////////////////////////\n\ntype EncodeAddressErrorType =\n | InvalidAddressErrorType\n | IsAddressErrorType\n | ErrorType\n\nfunction encodeAddress(value: Hex): PreparedParam {\n if (!isAddress(value)) throw new InvalidAddressError({ address: value })\n return { dynamic: false, encoded: padHex(value.toLowerCase() as Hex) }\n}\n\ntype EncodeArrayErrorType =\n | AbiEncodingArrayLengthMismatchErrorType\n | ConcatHexErrorType\n | EncodeParamsErrorType\n | InvalidArrayErrorType\n | NumberToHexErrorType\n // TODO: Add back once circular type reference is resolved\n // | PrepareParamErrorType\n | ErrorType\n\nfunction encodeArray(\n value: AbiParameterToPrimitiveType,\n {\n length,\n param,\n }: {\n length: number | null\n param: param\n },\n): PreparedParam {\n const dynamic = length === null\n\n if (!Array.isArray(value)) throw new InvalidArrayError(value)\n if (!dynamic && value.length !== length)\n throw new AbiEncodingArrayLengthMismatchError({\n expectedLength: length!,\n givenLength: value.length,\n type: `${param.type}[${length}]`,\n })\n\n // Zero-length fixed arrays of dynamic types (e.g. `string[0]`) are dynamic\n // per the ABI spec, even though they have no elements to inspect.\n let dynamicChild = value.length === 0 && isDynamicType(param)\n const preparedParams: PreparedParam[] = []\n for (let i = 0; i < value.length; i++) {\n const preparedParam = prepareParam({ param, value: value[i] })\n if (preparedParam.dynamic) dynamicChild = true\n preparedParams.push(preparedParam)\n }\n\n if (dynamic || dynamicChild) {\n const data = encodeParams(preparedParams)\n if (dynamic) {\n const length = numberToHex(preparedParams.length, { size: 32 })\n return {\n dynamic: true,\n encoded: concatHex([length, data]),\n }\n }\n if (dynamicChild) return { dynamic: true, encoded: data }\n }\n return {\n dynamic: false,\n encoded: concatHex(preparedParams.map(({ encoded }) => encoded)),\n }\n}\n\ntype EncodeBytesErrorType =\n | AbiEncodingBytesSizeMismatchErrorType\n | ConcatHexErrorType\n | PadHexErrorType\n | NumberToHexErrorType\n | SizeErrorType\n | ErrorType\n\nfunction encodeBytes(\n value: Hex,\n { param }: { param: param },\n): PreparedParam {\n const [, paramSize] = param.type.split('bytes')\n const bytesSize = size(value)\n if (!paramSize) {\n let value_ = value\n // If the size is not divisible by 32 bytes, pad the end\n // with empty bytes to the ceiling 32 bytes.\n if (bytesSize % 32 !== 0)\n value_ = padHex(value_, {\n dir: 'right',\n size: Math.ceil((value.length - 2) / 2 / 32) * 32,\n })\n return {\n dynamic: true,\n encoded: concatHex([\n padHex(numberToHex(bytesSize, { size: 32 })),\n value_,\n ]),\n }\n }\n if (bytesSize !== Number.parseInt(paramSize, 10))\n throw new AbiEncodingBytesSizeMismatchError({\n expectedSize: Number.parseInt(paramSize, 10),\n value,\n })\n return { dynamic: false, encoded: padHex(value, { dir: 'right' }) }\n}\n\ntype EncodeBoolErrorType = PadHexErrorType | BoolToHexErrorType | ErrorType\n\nfunction encodeBool(value: boolean): PreparedParam {\n if (typeof value !== 'boolean')\n throw new BaseError(\n `Invalid boolean value: \"${value}\" (type: ${typeof value}). Expected: \\`true\\` or \\`false\\`.`,\n )\n return { dynamic: false, encoded: padHex(boolToHex(value)) }\n}\n\ntype EncodeNumberErrorType = NumberToHexErrorType | ErrorType\n\nfunction encodeNumber(\n value: number,\n { signed, size = 256 }: { signed: boolean; size?: number | undefined },\n): PreparedParam {\n if (typeof size === 'number') {\n const max = 2n ** (BigInt(size) - (signed ? 1n : 0n)) - 1n\n const min = signed ? -max - 1n : 0n\n if (value > max || value < min)\n throw new IntegerOutOfRangeError({\n max: max.toString(),\n min: min.toString(),\n signed,\n size: size / 8,\n value: value.toString(),\n })\n }\n return {\n dynamic: false,\n encoded: numberToHex(value, {\n size: 32,\n signed,\n }),\n }\n}\n\ntype EncodeStringErrorType =\n | ConcatHexErrorType\n | NumberToHexErrorType\n | PadHexErrorType\n | SizeErrorType\n | SliceErrorType\n | StringToHexErrorType\n | ErrorType\n\nfunction encodeString(value: string): PreparedParam {\n const hexValue = stringToHex(value)\n const partsLength = Math.ceil(size(hexValue) / 32)\n const parts: Hex[] = []\n for (let i = 0; i < partsLength; i++) {\n parts.push(\n padHex(slice(hexValue, i * 32, (i + 1) * 32), {\n dir: 'right',\n }),\n )\n }\n return {\n dynamic: true,\n encoded: concatHex([\n padHex(numberToHex(size(hexValue), { size: 32 })),\n ...parts,\n ]),\n }\n}\n\ntype EncodeTupleErrorType =\n | ConcatHexErrorType\n | EncodeParamsErrorType\n // TODO: Add back once circular type reference is resolved\n // | PrepareParamErrorType\n | ErrorType\n\nfunction encodeTuple<\n const param extends AbiParameter & { components: readonly AbiParameter[] },\n>(\n value: AbiParameterToPrimitiveType,\n { param }: { param: param },\n): PreparedParam {\n let dynamic = false\n const preparedParams: PreparedParam[] = []\n for (let i = 0; i < param.components.length; i++) {\n const param_ = param.components[i]\n const index = Array.isArray(value) ? i : param_.name\n const preparedParam = prepareParam({\n param: param_,\n value: (value as any)[index!] as readonly unknown[],\n })\n preparedParams.push(preparedParam)\n if (preparedParam.dynamic) dynamic = true\n }\n return {\n dynamic,\n encoded: dynamic\n ? encodeParams(preparedParams)\n : concatHex(preparedParams.map(({ encoded }) => encoded)),\n }\n}\n\ntype GetArrayComponentsErrorType = ErrorType\n\nexport function getArrayComponents(\n type: string,\n): [length: number | null, innerType: string] | undefined {\n const matches = type.match(/^(.*)\\[(\\d+)?\\]$/)\n return matches\n ? // Return `null` if the array is dynamic.\n [matches[2] ? Number(matches[2]) : null, matches[1]]\n : undefined\n}\n\nfunction isDynamicType(param: AbiParameter): boolean {\n const { type } = param\n if (type === 'string') return true\n if (type === 'bytes') return true\n if (type.endsWith('[]')) return true\n if (type === 'tuple')\n return (param as TupleAbiParameter).components.some(isDynamicType)\n const arrayComponents = getArrayComponents(type)\n if (arrayComponents)\n return isDynamicType({ ...param, type: arrayComponents[1] })\n return false\n}\n", "import type { ErrorType } from '../errors/utils.js'\n\nexport type StringifyErrorType = ErrorType\n\nexport const stringify: typeof JSON.stringify = (value, replacer, space) =>\n JSON.stringify(\n value,\n (key, value_) => {\n const value = typeof value_ === 'bigint' ? value_.toString() : value_\n return typeof replacer === 'function' ? replacer(key, value) : value\n },\n space,\n )\n", "\"use strict\";\r\nmodule.exports = asPromise;\r\n\r\n/**\r\n * Callback as used by {@link util.asPromise}.\r\n * @typedef asPromiseCallback\r\n * @type {function}\r\n * @param {Error|null} error Error, if any\r\n * @param {...*} params Additional arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Returns a promise from a node-style callback function.\r\n * @memberof util\r\n * @param {asPromiseCallback} fn Function to call\r\n * @param {*} ctx Function context\r\n * @param {...*} params Function arguments\r\n * @returns {Promise<*>} Promisified function\r\n */\r\nfunction asPromise(fn, ctx/*, varargs */) {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0,\r\n index = 2,\r\n pending = true;\r\n while (index < arguments.length)\r\n params[offset++] = arguments[index++];\r\n return new Promise(function executor(resolve, reject) {\r\n params[offset] = function callback(err/*, varargs */) {\r\n if (pending) {\r\n pending = false;\r\n if (err)\r\n reject(err);\r\n else {\r\n var params = new Array(arguments.length - 1),\r\n offset = 0;\r\n while (offset < params.length)\r\n params[offset++] = arguments[offset];\r\n resolve.apply(null, params);\r\n }\r\n }\r\n };\r\n try {\r\n fn.apply(ctx || null, params);\r\n } catch (err) {\r\n if (pending) {\r\n pending = false;\r\n reject(err);\r\n }\r\n }\r\n });\r\n}\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal base64 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar base64 = exports;\r\n\r\n/**\r\n * Calculates the byte length of a base64 encoded string.\r\n * @param {string} string Base64 encoded string\r\n * @returns {number} Byte length\r\n */\r\nbase64.length = function length(string) {\r\n var p = string.length;\r\n if (!p)\r\n return 0;\r\n var n = 0;\r\n while (--p % 4 > 1 && string.charAt(p) === \"=\")\r\n ++n;\r\n return Math.ceil(string.length * 3) / 4 - n;\r\n};\r\n\r\n// Base64 encoding table\r\nvar b64 = new Array(64);\r\n\r\n// Base64 decoding table\r\nvar s64 = new Array(123);\r\n\r\n// 65..90, 97..122, 48..57, 43, 47\r\nfor (var i = 0; i < 64;)\r\n s64[b64[i] = i < 26 ? i + 65 : i < 52 ? i + 71 : i < 62 ? i - 4 : i - 59 | 43] = i++;\r\n\r\n/**\r\n * Encodes a buffer to a base64 encoded string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} Base64 encoded string\r\n */\r\nbase64.encode = function encode(buffer, start, end) {\r\n var parts = null,\r\n chunk = [];\r\n var i = 0, // output index\r\n j = 0, // goto index\r\n t; // temporary\r\n while (start < end) {\r\n var b = buffer[start++];\r\n switch (j) {\r\n case 0:\r\n chunk[i++] = b64[b >> 2];\r\n t = (b & 3) << 4;\r\n j = 1;\r\n break;\r\n case 1:\r\n chunk[i++] = b64[t | b >> 4];\r\n t = (b & 15) << 2;\r\n j = 2;\r\n break;\r\n case 2:\r\n chunk[i++] = b64[t | b >> 6];\r\n chunk[i++] = b64[b & 63];\r\n j = 0;\r\n break;\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk));\r\n i = 0;\r\n }\r\n }\r\n if (j) {\r\n chunk[i++] = b64[t];\r\n chunk[i++] = 61;\r\n if (j === 1)\r\n chunk[i++] = 61;\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\nvar invalidEncoding = \"invalid encoding\";\r\n\r\n/**\r\n * Decodes a base64 encoded string to a buffer.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Number of bytes written\r\n * @throws {Error} If encoding is invalid\r\n */\r\nbase64.decode = function decode(string, buffer, offset) {\r\n var start = offset;\r\n var j = 0, // goto index\r\n t; // temporary\r\n for (var i = 0; i < string.length;) {\r\n var c = string.charCodeAt(i++);\r\n if (c === 61 && j > 1)\r\n break;\r\n if ((c = s64[c]) === undefined)\r\n throw Error(invalidEncoding);\r\n switch (j) {\r\n case 0:\r\n t = c;\r\n j = 1;\r\n break;\r\n case 1:\r\n buffer[offset++] = t << 2 | (c & 48) >> 4;\r\n t = c;\r\n j = 2;\r\n break;\r\n case 2:\r\n buffer[offset++] = (t & 15) << 4 | (c & 60) >> 2;\r\n t = c;\r\n j = 3;\r\n break;\r\n case 3:\r\n buffer[offset++] = (t & 3) << 6 | c;\r\n j = 0;\r\n break;\r\n }\r\n }\r\n if (j === 1)\r\n throw Error(invalidEncoding);\r\n return offset - start;\r\n};\r\n\r\n/**\r\n * Tests if the specified string appears to be base64 encoded.\r\n * @param {string} string String to test\r\n * @returns {boolean} `true` if probably base64 encoded, otherwise false\r\n */\r\nbase64.test = function test(string) {\r\n return /^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(string);\r\n};\r\n", "\"use strict\";\r\nmodule.exports = EventEmitter;\r\n\r\n/**\r\n * Constructs a new event emitter instance.\r\n * @classdesc A minimal event emitter.\r\n * @memberof util\r\n * @constructor\r\n */\r\nfunction EventEmitter() {\r\n\r\n /**\r\n * Registered listeners.\r\n * @type {Object.}\r\n * @private\r\n */\r\n this._listeners = Object.create(null);\r\n}\r\n\r\n/**\r\n * Event listener as used by {@link util.EventEmitter}.\r\n * @typedef EventEmitterListener\r\n * @type {function}\r\n * @param {...*} args Arguments\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Registers an event listener.\r\n * @param {string} evt Event name\r\n * @param {EventEmitterListener} fn Listener\r\n * @param {*} [ctx] Listener context\r\n * @returns {this} `this`\r\n */\r\nEventEmitter.prototype.on = function on(evt, fn, ctx) {\r\n (this._listeners[evt] || (this._listeners[evt] = [])).push({\r\n fn : fn,\r\n ctx : ctx || this\r\n });\r\n return this;\r\n};\r\n\r\n/**\r\n * Removes an event listener or any matching listeners if arguments are omitted.\r\n * @param {string} [evt] Event name. Removes all listeners if omitted.\r\n * @param {EventEmitterListener} [fn] Listener to remove. Removes all listeners of `evt` if omitted.\r\n * @returns {this} `this`\r\n */\r\nEventEmitter.prototype.off = function off(evt, fn) {\r\n if (evt === undefined)\r\n this._listeners = Object.create(null);\r\n else {\r\n if (fn === undefined)\r\n this._listeners[evt] = [];\r\n else {\r\n var listeners = this._listeners[evt];\r\n if (!listeners)\r\n return this;\r\n for (var i = 0; i < listeners.length;)\r\n if (listeners[i].fn === fn)\r\n listeners.splice(i, 1);\r\n else\r\n ++i;\r\n }\r\n }\r\n return this;\r\n};\r\n\r\n/**\r\n * Emits an event by calling its listeners with the specified arguments.\r\n * @param {string} evt Event name\r\n * @param {...*} args Arguments\r\n * @returns {this} `this`\r\n */\r\nEventEmitter.prototype.emit = function emit(evt) {\r\n var listeners = this._listeners[evt];\r\n if (listeners) {\r\n var args = [],\r\n i = 1;\r\n for (; i < arguments.length;)\r\n args.push(arguments[i++]);\r\n for (i = 0; i < listeners.length;)\r\n listeners[i].fn.apply(listeners[i++].ctx, args);\r\n }\r\n return this;\r\n};\r\n", "\"use strict\";\r\n\r\nmodule.exports = factory(factory);\r\n\r\n/**\r\n * Reads / writes floats / doubles from / to buffers.\r\n * @name util.float\r\n * @namespace\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using little endian byte order.\r\n * @name util.float.writeFloatLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 32 bit float to a buffer using big endian byte order.\r\n * @name util.float.writeFloatBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using little endian byte order.\r\n * @name util.float.readFloatLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 32 bit float from a buffer using big endian byte order.\r\n * @name util.float.readFloatBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using little endian byte order.\r\n * @name util.float.writeDoubleLE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Writes a 64 bit double to a buffer using big endian byte order.\r\n * @name util.float.writeDoubleBE\r\n * @function\r\n * @param {number} val Value to write\r\n * @param {Uint8Array} buf Target buffer\r\n * @param {number} pos Target buffer offset\r\n * @returns {undefined}\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using little endian byte order.\r\n * @name util.float.readDoubleLE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n/**\r\n * Reads a 64 bit double from a buffer using big endian byte order.\r\n * @name util.float.readDoubleBE\r\n * @function\r\n * @param {Uint8Array} buf Source buffer\r\n * @param {number} pos Source buffer offset\r\n * @returns {number} Value read\r\n */\r\n\r\n// Factory function for the purpose of node-based testing in modified global environments\r\nfunction factory(exports) {\r\n\r\n // float: typed array\r\n if (typeof Float32Array !== \"undefined\") (function() {\r\n\r\n var f32 = new Float32Array([ -0 ]),\r\n f8b = new Uint8Array(f32.buffer),\r\n le = f8b[3] === 128;\r\n\r\n function writeFloat_f32_cpy(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n }\r\n\r\n function writeFloat_f32_rev(val, buf, pos) {\r\n f32[0] = val;\r\n buf[pos ] = f8b[3];\r\n buf[pos + 1] = f8b[2];\r\n buf[pos + 2] = f8b[1];\r\n buf[pos + 3] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeFloatLE = le ? writeFloat_f32_cpy : writeFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.writeFloatBE = le ? writeFloat_f32_rev : writeFloat_f32_cpy;\r\n\r\n function readFloat_f32_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n function readFloat_f32_rev(buf, pos) {\r\n f8b[3] = buf[pos ];\r\n f8b[2] = buf[pos + 1];\r\n f8b[1] = buf[pos + 2];\r\n f8b[0] = buf[pos + 3];\r\n return f32[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readFloatLE = le ? readFloat_f32_cpy : readFloat_f32_rev;\r\n /* istanbul ignore next */\r\n exports.readFloatBE = le ? readFloat_f32_rev : readFloat_f32_cpy;\r\n\r\n // float: ieee754\r\n })(); else (function() {\r\n\r\n function writeFloat_ieee754(writeUint, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0)\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos);\r\n else if (isNaN(val))\r\n writeUint(2143289344, buf, pos);\r\n else if (val > 3.4028234663852886e+38) // +-Infinity\r\n writeUint((sign << 31 | 2139095040) >>> 0, buf, pos);\r\n else if (val < 1.1754943508222875e-38) // denormal\r\n writeUint((sign << 31 | Math.round(val / 1.401298464324817e-45)) >>> 0, buf, pos);\r\n else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2),\r\n mantissa = Math.round(val * Math.pow(2, -exponent) * 8388608) & 8388607;\r\n writeUint((sign << 31 | exponent + 127 << 23 | mantissa) >>> 0, buf, pos);\r\n }\r\n }\r\n\r\n exports.writeFloatLE = writeFloat_ieee754.bind(null, writeUintLE);\r\n exports.writeFloatBE = writeFloat_ieee754.bind(null, writeUintBE);\r\n\r\n function readFloat_ieee754(readUint, buf, pos) {\r\n var uint = readUint(buf, pos),\r\n sign = (uint >> 31) * 2 + 1,\r\n exponent = uint >>> 23 & 255,\r\n mantissa = uint & 8388607;\r\n return exponent === 255\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 1.401298464324817e-45 * mantissa\r\n : sign * Math.pow(2, exponent - 150) * (mantissa + 8388608);\r\n }\r\n\r\n exports.readFloatLE = readFloat_ieee754.bind(null, readUintLE);\r\n exports.readFloatBE = readFloat_ieee754.bind(null, readUintBE);\r\n\r\n })();\r\n\r\n // double: typed array\r\n if (typeof Float64Array !== \"undefined\") (function() {\r\n\r\n var f64 = new Float64Array([-0]),\r\n f8b = new Uint8Array(f64.buffer),\r\n le = f8b[7] === 128;\r\n\r\n function writeDouble_f64_cpy(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[0];\r\n buf[pos + 1] = f8b[1];\r\n buf[pos + 2] = f8b[2];\r\n buf[pos + 3] = f8b[3];\r\n buf[pos + 4] = f8b[4];\r\n buf[pos + 5] = f8b[5];\r\n buf[pos + 6] = f8b[6];\r\n buf[pos + 7] = f8b[7];\r\n }\r\n\r\n function writeDouble_f64_rev(val, buf, pos) {\r\n f64[0] = val;\r\n buf[pos ] = f8b[7];\r\n buf[pos + 1] = f8b[6];\r\n buf[pos + 2] = f8b[5];\r\n buf[pos + 3] = f8b[4];\r\n buf[pos + 4] = f8b[3];\r\n buf[pos + 5] = f8b[2];\r\n buf[pos + 6] = f8b[1];\r\n buf[pos + 7] = f8b[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.writeDoubleLE = le ? writeDouble_f64_cpy : writeDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.writeDoubleBE = le ? writeDouble_f64_rev : writeDouble_f64_cpy;\r\n\r\n function readDouble_f64_cpy(buf, pos) {\r\n f8b[0] = buf[pos ];\r\n f8b[1] = buf[pos + 1];\r\n f8b[2] = buf[pos + 2];\r\n f8b[3] = buf[pos + 3];\r\n f8b[4] = buf[pos + 4];\r\n f8b[5] = buf[pos + 5];\r\n f8b[6] = buf[pos + 6];\r\n f8b[7] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n function readDouble_f64_rev(buf, pos) {\r\n f8b[7] = buf[pos ];\r\n f8b[6] = buf[pos + 1];\r\n f8b[5] = buf[pos + 2];\r\n f8b[4] = buf[pos + 3];\r\n f8b[3] = buf[pos + 4];\r\n f8b[2] = buf[pos + 5];\r\n f8b[1] = buf[pos + 6];\r\n f8b[0] = buf[pos + 7];\r\n return f64[0];\r\n }\r\n\r\n /* istanbul ignore next */\r\n exports.readDoubleLE = le ? readDouble_f64_cpy : readDouble_f64_rev;\r\n /* istanbul ignore next */\r\n exports.readDoubleBE = le ? readDouble_f64_rev : readDouble_f64_cpy;\r\n\r\n // double: ieee754\r\n })(); else (function() {\r\n\r\n function writeDouble_ieee754(writeUint, off0, off1, val, buf, pos) {\r\n var sign = val < 0 ? 1 : 0;\r\n if (sign)\r\n val = -val;\r\n if (val === 0) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(1 / val > 0 ? /* positive */ 0 : /* negative 0 */ 2147483648, buf, pos + off1);\r\n } else if (isNaN(val)) {\r\n writeUint(0, buf, pos + off0);\r\n writeUint(2146959360, buf, pos + off1);\r\n } else if (val > 1.7976931348623157e+308) { // +-Infinity\r\n writeUint(0, buf, pos + off0);\r\n writeUint((sign << 31 | 2146435072) >>> 0, buf, pos + off1);\r\n } else {\r\n var mantissa;\r\n if (val < 2.2250738585072014e-308) { // denormal\r\n mantissa = val / 5e-324;\r\n writeUint(mantissa >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | mantissa / 4294967296) >>> 0, buf, pos + off1);\r\n } else {\r\n var exponent = Math.floor(Math.log(val) / Math.LN2);\r\n if (exponent === 1024)\r\n exponent = 1023;\r\n mantissa = val * Math.pow(2, -exponent);\r\n writeUint(mantissa * 4503599627370496 >>> 0, buf, pos + off0);\r\n writeUint((sign << 31 | exponent + 1023 << 20 | mantissa * 1048576 & 1048575) >>> 0, buf, pos + off1);\r\n }\r\n }\r\n }\r\n\r\n exports.writeDoubleLE = writeDouble_ieee754.bind(null, writeUintLE, 0, 4);\r\n exports.writeDoubleBE = writeDouble_ieee754.bind(null, writeUintBE, 4, 0);\r\n\r\n function readDouble_ieee754(readUint, off0, off1, buf, pos) {\r\n var lo = readUint(buf, pos + off0),\r\n hi = readUint(buf, pos + off1);\r\n var sign = (hi >> 31) * 2 + 1,\r\n exponent = hi >>> 20 & 2047,\r\n mantissa = 4294967296 * (hi & 1048575) + lo;\r\n return exponent === 2047\r\n ? mantissa\r\n ? NaN\r\n : sign * Infinity\r\n : exponent === 0 // denormal\r\n ? sign * 5e-324 * mantissa\r\n : sign * Math.pow(2, exponent - 1075) * (mantissa + 4503599627370496);\r\n }\r\n\r\n exports.readDoubleLE = readDouble_ieee754.bind(null, readUintLE, 0, 4);\r\n exports.readDoubleBE = readDouble_ieee754.bind(null, readUintBE, 4, 0);\r\n\r\n })();\r\n\r\n return exports;\r\n}\r\n\r\n// uint helpers\r\n\r\nfunction writeUintLE(val, buf, pos) {\r\n buf[pos ] = val & 255;\r\n buf[pos + 1] = val >>> 8 & 255;\r\n buf[pos + 2] = val >>> 16 & 255;\r\n buf[pos + 3] = val >>> 24;\r\n}\r\n\r\nfunction writeUintBE(val, buf, pos) {\r\n buf[pos ] = val >>> 24;\r\n buf[pos + 1] = val >>> 16 & 255;\r\n buf[pos + 2] = val >>> 8 & 255;\r\n buf[pos + 3] = val & 255;\r\n}\r\n\r\nfunction readUintLE(buf, pos) {\r\n return (buf[pos ]\r\n | buf[pos + 1] << 8\r\n | buf[pos + 2] << 16\r\n | buf[pos + 3] << 24) >>> 0;\r\n}\r\n\r\nfunction readUintBE(buf, pos) {\r\n return (buf[pos ] << 24\r\n | buf[pos + 1] << 16\r\n | buf[pos + 2] << 8\r\n | buf[pos + 3]) >>> 0;\r\n}\r\n", "\"use strict\";\r\nmodule.exports = inquire;\r\n\r\n/**\r\n * Requires a module only if available.\r\n * @memberof util\r\n * @param {string} moduleName Module to require\r\n * @returns {?Object} Required module if available and not empty, otherwise `null`\r\n * @deprecated Legacy optional require helper. Will be removed in a future release.\r\n */\r\nfunction inquire(moduleName) {\r\n try {\r\n if (typeof require !== \"function\") {\r\n return null;\r\n }\r\n var mod = require(moduleName);\r\n if (mod && (mod.length || Object.keys(mod).length)) return mod;\r\n return null;\r\n } catch (err) {\r\n // ignore\r\n return null;\r\n }\r\n}\r\n\r\n/*\r\n// maybe worth a shot to prevent renaming issues:\r\n// see: https://github.com/webpack/webpack/blob/master/lib/dependencies/CommonJsRequireDependencyParserPlugin.js\r\n// triggers on:\r\n// - expression require.cache\r\n// - expression require (???)\r\n// - call require\r\n// - call require:commonjs:item\r\n// - call require:commonjs:context\r\n\r\nObject.defineProperty(Function.prototype, \"__self\", { get: function() { return this; } });\r\nvar r = require.__self;\r\ndelete Function.prototype.__self;\r\n*/\r\n", "\"use strict\";\r\n\r\n/**\r\n * A minimal UTF8 implementation for number arrays.\r\n * @memberof util\r\n * @namespace\r\n */\r\nvar utf8 = exports,\r\n replacementCharCode = 0xFFFD; // U+FFFD REPLACEMENT CHARACTER\r\n\r\n/**\r\n * Calculates the UTF8 byte length of a string.\r\n * @param {string} string String\r\n * @returns {number} Byte length\r\n */\r\nutf8.length = function utf8_length(string) {\r\n var len = 0,\r\n c = 0;\r\n for (var i = 0; i < string.length; ++i) {\r\n c = string.charCodeAt(i);\r\n if (c < 128)\r\n len += 1;\r\n else if (c < 2048)\r\n len += 2;\r\n else if ((c & 0xFC00) === 0xD800 && (string.charCodeAt(i + 1) & 0xFC00) === 0xDC00) {\r\n ++i;\r\n len += 4;\r\n } else\r\n len += 3;\r\n }\r\n return len;\r\n};\r\n\r\n/**\r\n * Reads UTF8 bytes as a string.\r\n * @param {Uint8Array} buffer Source buffer\r\n * @param {number} start Source start\r\n * @param {number} end Source end\r\n * @returns {string} String read\r\n */\r\nutf8.read = function utf8_read(buffer, start, end) {\r\n if (end - start < 1)\r\n return \"\";\r\n // Batch code units and flush via String.fromCharCode.apply in 8192-unit\r\n // chunks to avoid the per-character ConsString buildup of `str += ...`.\r\n var parts = null,\r\n chunk = [],\r\n i = 0, // chunk write index\r\n t, t2, c2, c3;\r\n while (start < end) {\r\n t = buffer[start++];\r\n if (t <= 0x7F) {\r\n chunk[i++] = t;\r\n } else if (t >= 0xC0 && t < 0xE0) {\r\n c2 = (t & 0x1F) << 6 | buffer[start++] & 0x3F;\r\n chunk[i++] = c2 >= 0x80 ? c2 : replacementCharCode;\r\n } else if (t >= 0xE0 && t < 0xF0) {\r\n c3 = (t & 0xF) << 12 | (buffer[start++] & 0x3F) << 6 | buffer[start++] & 0x3F;\r\n chunk[i++] = c3 >= 0x800 ? c3 : replacementCharCode;\r\n } else if (t >= 0xF0) {\r\n t2 = (t & 7) << 18 | (buffer[start++] & 0x3F) << 12 | (buffer[start++] & 0x3F) << 6 | buffer[start++] & 0x3F;\r\n if (t2 < 0x10000 || t2 > 0x10FFFF)\r\n chunk[i++] = replacementCharCode;\r\n else {\r\n t2 -= 0x10000;\r\n chunk[i++] = 0xD800 + (t2 >> 10);\r\n chunk[i++] = 0xDC00 + (t2 & 0x3FF);\r\n }\r\n }\r\n if (i > 8191) {\r\n (parts || (parts = [])).push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n i = 0;\r\n }\r\n }\r\n if (parts) {\r\n if (i)\r\n parts.push(String.fromCharCode.apply(String, chunk.slice(0, i)));\r\n return parts.join(\"\");\r\n }\r\n return String.fromCharCode.apply(String, chunk.slice(0, i));\r\n};\r\n\r\n/**\r\n * Writes a string as UTF8 bytes.\r\n * @param {string} string Source string\r\n * @param {Uint8Array} buffer Destination buffer\r\n * @param {number} offset Destination offset\r\n * @returns {number} Bytes written\r\n */\r\nutf8.write = function utf8_write(string, buffer, offset) {\r\n var start = offset,\r\n c1, // character 1\r\n c2; // character 2\r\n for (var i = 0; i < string.length; ++i) {\r\n c1 = string.charCodeAt(i);\r\n if (c1 < 128) {\r\n buffer[offset++] = c1;\r\n } else if (c1 < 2048) {\r\n buffer[offset++] = c1 >> 6 | 192;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else if ((c1 & 0xFC00) === 0xD800 && ((c2 = string.charCodeAt(i + 1)) & 0xFC00) === 0xDC00) {\r\n c1 = 0x10000 + ((c1 & 0x03FF) << 10) + (c2 & 0x03FF);\r\n ++i;\r\n buffer[offset++] = c1 >> 18 | 240;\r\n buffer[offset++] = c1 >> 12 & 63 | 128;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n } else {\r\n buffer[offset++] = c1 >> 12 | 224;\r\n buffer[offset++] = c1 >> 6 & 63 | 128;\r\n buffer[offset++] = c1 & 63 | 128;\r\n }\r\n }\r\n return offset - start;\r\n};\r\n", "\"use strict\";\r\nmodule.exports = pool;\r\n\r\n/**\r\n * An allocator as used by {@link util.pool}.\r\n * @typedef PoolAllocator\r\n * @type {function}\r\n * @param {number} size Buffer size\r\n * @returns {Uint8Array} Buffer\r\n */\r\n\r\n/**\r\n * A slicer as used by {@link util.pool}.\r\n * @typedef PoolSlicer\r\n * @type {function}\r\n * @param {number} start Start offset\r\n * @param {number} end End offset\r\n * @returns {Uint8Array} Buffer slice\r\n * @this {Uint8Array}\r\n */\r\n\r\n/**\r\n * A general purpose buffer pool.\r\n * @memberof util\r\n * @function\r\n * @param {PoolAllocator} alloc Allocator\r\n * @param {PoolSlicer} slice Slicer\r\n * @param {number} [size=8192] Slab size\r\n * @returns {PoolAllocator} Pooled allocator\r\n */\r\nfunction pool(alloc, slice, size) {\r\n var SIZE = size || 8192;\r\n var MAX = SIZE >>> 1;\r\n var slab = null;\r\n var offset = SIZE;\r\n return function pool_alloc(size) {\r\n if (size < 1 || size > MAX)\r\n return alloc(size);\r\n if (offset + size > SIZE) {\r\n slab = alloc(SIZE);\r\n offset = 0;\r\n }\r\n var buf = slice.call(slab, offset, offset += size);\r\n if (offset & 7) // align to 32 bit\r\n offset = (offset | 7) + 1;\r\n return buf;\r\n };\r\n}\r\n", "\"use strict\";\nmodule.exports = LongBits;\n\nvar util = require(\"../util/minimal\");\n\n/**\n * Constructs new long bits.\n * @classdesc Helper class for working with the low and high bits of a 64 bit value.\n * @memberof util\n * @constructor\n * @param {number} lo Low 32 bits, unsigned\n * @param {number} hi High 32 bits, unsigned\n */\nfunction LongBits(lo, hi) {\n\n // note that the casts below are theoretically unnecessary as of today, but older statically\n // generated converter code might still call the ctor with signed 32bits. kept for compat.\n\n /**\n * Low bits.\n * @type {number}\n */\n this.lo = lo >>> 0;\n\n /**\n * High bits.\n * @type {number}\n */\n this.hi = hi >>> 0;\n}\n\n/**\n * Zero bits.\n * @memberof util.LongBits\n * @type {util.LongBits}\n */\nvar zero = LongBits.zero = new LongBits(0, 0);\n\nzero.toNumber = function() { return 0; };\nzero.zzEncode = zero.zzDecode = function() { return this; };\nzero.length = function() { return 1; };\n\n/**\n * Zero hash.\n * @memberof util.LongBits\n * @type {string}\n */\nvar zeroHash = LongBits.zeroHash = \"\\0\\0\\0\\0\\0\\0\\0\\0\";\n\n/**\n * Constructs new long bits from the specified number.\n * @param {number} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.fromNumber = function fromNumber(value) {\n if (value === 0)\n return zero;\n var sign = value < 0;\n if (sign)\n value = -value;\n var lo = value >>> 0,\n hi = (value - lo) / 4294967296 >>> 0;\n if (sign) {\n hi = ~hi >>> 0;\n lo = ~lo >>> 0;\n if (++lo > 4294967295) {\n lo = 0;\n if (++hi > 4294967295)\n hi = 0;\n }\n }\n return new LongBits(lo, hi);\n};\n\n/**\n * Constructs new long bits from a number, long or string.\n * @param {Long|number|string} value Value\n * @returns {util.LongBits} Instance\n */\nLongBits.from = function from(value) {\n if (typeof value === \"number\")\n return LongBits.fromNumber(value);\n if (util.isString(value)) {\n /* istanbul ignore else */\n if (util.Long)\n value = util.Long.fromString(value);\n else\n return LongBits.fromNumber(parseInt(value, 10));\n }\n return value.low || value.high ? new LongBits(value.low >>> 0, value.high >>> 0) : zero;\n};\n\n/**\n * Converts this long bits to a possibly unsafe JavaScript number.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {number} Possibly unsafe number\n */\nLongBits.prototype.toNumber = function toNumber(unsigned) {\n if (!unsigned && this.hi >>> 31) {\n var lo = ~this.lo + 1 >>> 0,\n hi = ~this.hi >>> 0;\n if (!lo)\n hi = hi + 1 >>> 0;\n return -(lo + hi * 4294967296);\n }\n return this.lo + this.hi * 4294967296;\n};\n\n/**\n * Converts this long bits to a long.\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long} Long\n */\nLongBits.prototype.toLong = function toLong(unsigned) {\n return util.Long\n ? new util.Long(this.lo | 0, this.hi | 0, Boolean(unsigned))\n /* istanbul ignore next */\n : { low: this.lo | 0, high: this.hi | 0, unsigned: Boolean(unsigned) };\n};\n\nvar charCodeAt = String.prototype.charCodeAt;\n\n/**\n * Constructs new long bits from the specified 8 characters long hash.\n * @param {string} hash Hash\n * @returns {util.LongBits} Bits\n */\nLongBits.fromHash = function fromHash(hash) {\n if (hash === zeroHash)\n return zero;\n return new LongBits(\n ( charCodeAt.call(hash, 0)\n | charCodeAt.call(hash, 1) << 8\n | charCodeAt.call(hash, 2) << 16\n | charCodeAt.call(hash, 3) << 24) >>> 0\n ,\n ( charCodeAt.call(hash, 4)\n | charCodeAt.call(hash, 5) << 8\n | charCodeAt.call(hash, 6) << 16\n | charCodeAt.call(hash, 7) << 24) >>> 0\n );\n};\n\n/**\n * Converts this long bits to a 8 characters long hash.\n * @returns {string} Hash\n */\nLongBits.prototype.toHash = function toHash() {\n return String.fromCharCode(\n this.lo & 255,\n this.lo >>> 8 & 255,\n this.lo >>> 16 & 255,\n this.lo >>> 24 ,\n this.hi & 255,\n this.hi >>> 8 & 255,\n this.hi >>> 16 & 255,\n this.hi >>> 24\n );\n};\n\n/**\n * Zig-zag encodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzEncode = function zzEncode() {\n var mask = this.hi >> 31;\n this.hi = ((this.hi << 1 | this.lo >>> 31) ^ mask) >>> 0;\n this.lo = ( this.lo << 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Zig-zag decodes this long bits.\n * @returns {util.LongBits} `this`\n */\nLongBits.prototype.zzDecode = function zzDecode() {\n var mask = -(this.lo & 1);\n this.lo = ((this.lo >>> 1 | this.hi << 31) ^ mask) >>> 0;\n this.hi = ( this.hi >>> 1 ^ mask) >>> 0;\n return this;\n};\n\n/**\n * Calculates the length of this longbits when encoded as a varint.\n * @returns {number} Length\n */\nLongBits.prototype.length = function length() {\n var part0 = this.lo,\n part1 = (this.lo >>> 28 | this.hi << 4) >>> 0,\n part2 = this.hi >>> 24;\n return part2 === 0\n ? part1 === 0\n ? part0 < 16384\n ? part0 < 128 ? 1 : 2\n : part0 < 2097152 ? 3 : 4\n : part1 < 16384\n ? part1 < 128 ? 5 : 6\n : part1 < 2097152 ? 7 : 8\n : part2 < 128 ? 9 : 10;\n};\n", "\"use strict\";\nvar util = exports;\n\n// used to return a Promise where callback is omitted\nutil.asPromise = require(\"@protobufjs/aspromise\");\n\n// converts to / from base64 encoded strings\nutil.base64 = require(\"@protobufjs/base64\");\n\n// base class of rpc.Service\nutil.EventEmitter = require(\"@protobufjs/eventemitter\");\n\n// float handling accross browsers\nutil.float = require(\"@protobufjs/float\");\n\n// requires modules optionally and hides the call from bundlers\nutil.inquire = require(\"@protobufjs/inquire\");\n\n// converts to / from utf8 encoded strings\nutil.utf8 = require(\"@protobufjs/utf8\");\n\n// provides a node-like buffer pool in the browser\nutil.pool = require(\"@protobufjs/pool\");\n\n// utility to work with the low and high bits of a 64 bit value\nutil.LongBits = require(\"./longbits\");\n\n/**\n * Whether running within node or not.\n * @memberof util\n * @type {boolean}\n */\nutil.isNode = Boolean(typeof global !== \"undefined\"\n && global\n && global.process\n && global.process.versions\n && global.process.versions.node);\n\n/**\n * Global object reference.\n * @memberof util\n * @type {Object}\n */\nutil.global = util.isNode && global\n || typeof window !== \"undefined\" && window\n || typeof self !== \"undefined\" && self\n || this; // eslint-disable-line no-invalid-this\n\n/**\n * An immuable empty array.\n * @memberof util\n * @type {Array.<*>}\n * @const\n */\nutil.emptyArray = Object.freeze ? Object.freeze([]) : /* istanbul ignore next */ []; // used on prototypes\n\n/**\n * An immutable empty object.\n * @type {Object}\n * @const\n */\nutil.emptyObject = Object.freeze ? Object.freeze({}) : /* istanbul ignore next */ {}; // used on prototypes\n\n/**\n * Tests if the specified value is an integer.\n * @function\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is an integer\n */\nutil.isInteger = Number.isInteger || /* istanbul ignore next */ function isInteger(value) {\n return typeof value === \"number\" && isFinite(value) && Math.floor(value) === value;\n};\n\n/**\n * Tests if the specified value is a string.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a string\n */\nutil.isString = function isString(value) {\n return typeof value === \"string\" || value instanceof String;\n};\n\n/**\n * Tests if the specified value is a non-null object.\n * @param {*} value Value to test\n * @returns {boolean} `true` if the value is a non-null object\n */\nutil.isObject = function isObject(value) {\n return value && typeof value === \"object\";\n};\n\n/**\n * Checks if a property on a message is considered to be present.\n * This is an alias of {@link util.isSet}.\n * @function\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isset =\n\n/**\n * Checks if a property on a message is considered to be present.\n * @param {Object} obj Plain object or message instance\n * @param {string} prop Property name\n * @returns {boolean} `true` if considered to be present, otherwise `false`\n */\nutil.isSet = function isSet(obj, prop) {\n var value = obj[prop];\n if (value != null && obj.hasOwnProperty(prop)) // eslint-disable-line eqeqeq, no-prototype-builtins\n return typeof value !== \"object\" || (Array.isArray(value) ? value.length : Object.keys(value).length) > 0;\n return false;\n};\n\n/**\n * Any compatible Buffer instance.\n * This is a minimal stand-alone definition of a Buffer instance. The actual type is that exported by node's typings.\n * @interface Buffer\n * @extends Uint8Array\n */\n\n/**\n * Node's Buffer class if available.\n * @type {Constructor}\n */\nutil.Buffer = (function() {\n try {\n var Buffer = util.inquire(\"buffer\").Buffer;\n // refuse to use non-node buffers if not explicitly assigned (perf reasons):\n return Buffer.prototype.utf8Write ? Buffer : /* istanbul ignore next */ null;\n } catch (e) {\n /* istanbul ignore next */\n return null;\n }\n})();\n\n// Internal alias of or polyfull for Buffer.from.\nutil._Buffer_from = null;\n\n// Internal alias of or polyfill for Buffer.allocUnsafe.\nutil._Buffer_allocUnsafe = null;\n\n/**\n * Creates a new buffer of whatever type supported by the environment.\n * @param {number|number[]} [sizeOrArray=0] Buffer size or number array\n * @returns {Uint8Array|Buffer} Buffer\n */\nutil.newBuffer = function newBuffer(sizeOrArray) {\n /* istanbul ignore next */\n return typeof sizeOrArray === \"number\"\n ? util.Buffer\n ? util._Buffer_allocUnsafe(sizeOrArray)\n : new util.Array(sizeOrArray)\n : util.Buffer\n ? util._Buffer_from(sizeOrArray)\n : typeof Uint8Array === \"undefined\"\n ? sizeOrArray\n : new Uint8Array(sizeOrArray);\n};\n\n/**\n * Array implementation used in the browser. `Uint8Array` if supported, otherwise `Array`.\n * @type {Constructor}\n */\nutil.Array = typeof Uint8Array !== \"undefined\" ? Uint8Array /* istanbul ignore next */ : Array;\n\n/**\n * Any compatible Long instance.\n * This is a minimal stand-alone definition of a Long instance. The actual type is that exported by long.js.\n * @interface Long\n * @property {number} low Low bits\n * @property {number} high High bits\n * @property {boolean} unsigned Whether unsigned or not\n */\n\n/**\n * Long.js's Long class if available.\n * @type {Constructor}\n */\nutil.Long = /* istanbul ignore next */ util.global.dcodeIO && /* istanbul ignore next */ util.global.dcodeIO.Long\n || /* istanbul ignore next */ util.global.Long\n || util.inquire(\"long\");\n\n/**\n * Regular expression used to verify 2 bit (`bool`) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key2Re = /^true|false|0|1$/;\n\n/**\n * Regular expression used to verify 32 bit (`int32` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key32Re = /^-?(?:0|[1-9][0-9]*)$/;\n\n/**\n * Regular expression used to verify 64 bit (`int64` etc.) map keys.\n * @type {RegExp}\n * @const\n */\nutil.key64Re = /^(?:[\\\\x00-\\\\xff]{8}|-?(?:0|[1-9][0-9]*))$/;\n\n/**\n * Converts a number or long to an 8 characters long hash string.\n * @param {Long|number} value Value to convert\n * @returns {string} Hash\n */\nutil.longToHash = function longToHash(value) {\n return value\n ? util.LongBits.from(value).toHash()\n : util.LongBits.zeroHash;\n};\n\n/**\n * Converts an 8 characters long hash string to a long or number.\n * @param {string} hash Hash\n * @param {boolean} [unsigned=false] Whether unsigned or not\n * @returns {Long|number} Original value\n */\nutil.longFromHash = function longFromHash(hash, unsigned) {\n var bits = util.LongBits.fromHash(hash);\n if (util.Long)\n return util.Long.fromBits(bits.lo, bits.hi, unsigned);\n return bits.toNumber(Boolean(unsigned));\n};\n\n/**\n * Merges the properties of the source object into the destination object.\n * @memberof util\n * @param {Object.} dst Destination object\n * @param {Object.} src Source object\n * @param {boolean} [ifNotSet=false] Merges only if the key is not already set\n * @returns {Object.} Destination object\n */\nfunction merge(dst, src, ifNotSet) { // used by converters\n for (var keys = Object.keys(src), i = 0; i < keys.length; ++i)\n if (dst[keys[i]] === undefined || !ifNotSet)\n dst[keys[i]] = src[keys[i]];\n return dst;\n}\n\nutil.merge = merge;\n\n/**\n * Converts the first character of a string to lower case.\n * @param {string} str String to convert\n * @returns {string} Converted string\n */\nutil.lcFirst = function lcFirst(str) {\n return str.charAt(0).toLowerCase() + str.substring(1);\n};\n\n/**\n * Creates a custom error constructor.\n * @memberof util\n * @param {string} name Error name\n * @returns {Constructor} Custom error constructor\n */\nfunction newError(name) {\n\n function CustomError(message, properties) {\n\n if (!(this instanceof CustomError))\n return new CustomError(message, properties);\n\n // Error.call(this, message);\n // ^ just returns a new error instance because the ctor can be called as a function\n\n Object.defineProperty(this, \"message\", { get: function() { return message; } });\n\n /* istanbul ignore next */\n if (Error.captureStackTrace) // node\n Error.captureStackTrace(this, CustomError);\n else\n Object.defineProperty(this, \"stack\", { value: new Error().stack || \"\" });\n\n if (properties)\n merge(this, properties);\n }\n\n (CustomError.prototype = Object.create(Error.prototype)).constructor = CustomError;\n\n Object.defineProperty(CustomError.prototype, \"name\", { get: function() { return name; } });\n\n CustomError.prototype.toString = function toString() {\n return this.name + \": \" + this.message;\n };\n\n return CustomError;\n}\n\nutil.newError = newError;\n\n/**\n * Constructs a new protocol error.\n * @classdesc Error subclass indicating a protocol specifc error.\n * @memberof util\n * @extends Error\n * @template T extends Message\n * @constructor\n * @param {string} message Error message\n * @param {Object.} [properties] Additional properties\n * @example\n * try {\n * MyMessage.decode(someBuffer); // throws if required fields are missing\n * } catch (e) {\n * if (e instanceof ProtocolError && e.instance)\n * console.log(\"decoded so far: \" + JSON.stringify(e.instance));\n * }\n */\nutil.ProtocolError = newError(\"ProtocolError\");\n\n/**\n * So far decoded message instance.\n * @name util.ProtocolError#instance\n * @type {Message}\n */\n\n/**\n * A OneOf getter as returned by {@link util.oneOfGetter}.\n * @typedef OneOfGetter\n * @type {function}\n * @returns {string|undefined} Set field name, if any\n */\n\n/**\n * Builds a getter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfGetter} Unbound getter\n */\nutil.oneOfGetter = function getOneOf(fieldNames) {\n var fieldMap = {};\n for (var i = 0; i < fieldNames.length; ++i)\n fieldMap[fieldNames[i]] = 1;\n\n /**\n * @returns {string|undefined} Set field name, if any\n * @this Object\n * @ignore\n */\n return function() { // eslint-disable-line consistent-return\n for (var keys = Object.keys(this), i = keys.length - 1; i > -1; --i)\n if (fieldMap[keys[i]] === 1 && this[keys[i]] !== undefined && this[keys[i]] !== null)\n return keys[i];\n };\n};\n\n/**\n * A OneOf setter as returned by {@link util.oneOfSetter}.\n * @typedef OneOfSetter\n * @type {function}\n * @param {string|undefined} value Field name\n * @returns {undefined}\n */\n\n/**\n * Builds a setter for a oneof's present field name.\n * @param {string[]} fieldNames Field names\n * @returns {OneOfSetter} Unbound setter\n */\nutil.oneOfSetter = function setOneOf(fieldNames) {\n\n /**\n * @param {string} name Field name\n * @returns {undefined}\n * @this Object\n * @ignore\n */\n return function(name) {\n for (var i = 0; i < fieldNames.length; ++i)\n if (fieldNames[i] !== name)\n delete this[fieldNames[i]];\n };\n};\n\n/**\n * Default conversion options used for {@link Message#toJSON} implementations.\n *\n * These options are close to proto3's JSON mapping with the exception that internal types like Any are handled just like messages. More precisely:\n *\n * - Longs become strings\n * - Enums become string keys\n * - Bytes become base64 encoded strings\n * - (Sub-)Messages become plain objects\n * - Maps become plain objects with all string keys\n * - Repeated fields become arrays\n * - NaN and Infinity for float and double fields become strings\n *\n * @type {IConversionOptions}\n * @see https://developers.google.com/protocol-buffers/docs/proto3?hl=en#json\n */\nutil.toJSONOptions = {\n longs: String,\n enums: String,\n bytes: String,\n json: true\n};\n\n// Sets up buffer utility according to the environment (called in index-minimal)\nutil._configure = function() {\n var Buffer = util.Buffer;\n /* istanbul ignore if */\n if (!Buffer) {\n util._Buffer_from = util._Buffer_allocUnsafe = null;\n return;\n }\n // because node 4.x buffers are incompatible & immutable\n // see: https://github.com/dcodeIO/protobuf.js/pull/665\n util._Buffer_from = Buffer.from !== Uint8Array.from && Buffer.from ||\n /* istanbul ignore next */\n function Buffer_from(value, encoding) {\n return new Buffer(value, encoding);\n };\n util._Buffer_allocUnsafe = Buffer.allocUnsafe ||\n /* istanbul ignore next */\n function Buffer_allocUnsafe(size) {\n return new Buffer(size);\n };\n};\n", "\"use strict\";\nmodule.exports = Writer;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferWriter; // cyclic\n\nvar LongBits = util.LongBits,\n base64 = util.base64,\n utf8 = util.utf8;\n\n/**\n * Constructs a new writer operation instance.\n * @classdesc Scheduled writer operation.\n * @constructor\n * @param {function(*, Uint8Array, number)} fn Function to call\n * @param {number} len Value byte length\n * @param {*} val Value to write\n * @ignore\n */\nfunction Op(fn, len, val) {\n\n /**\n * Function to call.\n * @type {function(Uint8Array, number, *)}\n */\n this.fn = fn;\n\n /**\n * Value byte length.\n * @type {number}\n */\n this.len = len;\n\n /**\n * Next operation.\n * @type {Writer.Op|undefined}\n */\n this.next = undefined;\n\n /**\n * Value to write.\n * @type {*}\n */\n this.val = val; // type varies\n}\n\n/* istanbul ignore next */\nfunction noop() {} // eslint-disable-line no-empty-function\n\n/**\n * Constructs a new writer state instance.\n * @classdesc Copied writer state.\n * @memberof Writer\n * @constructor\n * @param {Writer} writer Writer to copy state from\n * @ignore\n */\nfunction State(writer) {\n\n /**\n * Current head.\n * @type {Writer.Op}\n */\n this.head = writer.head;\n\n /**\n * Current tail.\n * @type {Writer.Op}\n */\n this.tail = writer.tail;\n\n /**\n * Current buffer length.\n * @type {number}\n */\n this.len = writer.len;\n\n /**\n * Next state.\n * @type {State|null}\n */\n this.next = writer.states;\n}\n\n/**\n * Constructs a new writer instance.\n * @classdesc Wire format writer using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n */\nfunction Writer() {\n\n /**\n * Current length.\n * @type {number}\n */\n this.len = 0;\n\n /**\n * Operations head.\n * @type {Object}\n */\n this.head = new Op(noop, 0, 0);\n\n /**\n * Operations tail\n * @type {Object}\n */\n this.tail = this.head;\n\n /**\n * Linked forked states.\n * @type {Object|null}\n */\n this.states = null;\n\n // When a value is written, the writer calculates its byte length and puts it into a linked\n // list of operations to perform when finish() is called. This both allows us to allocate\n // buffers of the exact required size and reduces the amount of work we have to do compared\n // to first calculating over objects and then encoding over objects. In our case, the encoding\n // part is just a linked list walk calling operations with already prepared values.\n}\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup() {\n return (Writer.create = function create_buffer() {\n return new BufferWriter();\n })();\n }\n /* istanbul ignore next */\n : function create_array() {\n return new Writer();\n };\n};\n\n/**\n * Creates a new writer.\n * @function\n * @returns {BufferWriter|Writer} A {@link BufferWriter} when Buffers are supported, otherwise a {@link Writer}\n */\nWriter.create = create();\n\n/**\n * Allocates a buffer of the specified size.\n * @param {number} size Buffer size\n * @returns {Uint8Array} Buffer\n */\nWriter.alloc = function alloc(size) {\n return new util.Array(size);\n};\n\n// Use Uint8Array buffer pool in the browser, just like node does with buffers\n/* istanbul ignore else */\nif (util.Array !== Array)\n Writer.alloc = util.pool(Writer.alloc, util.Array.prototype.subarray);\n\n/**\n * Pushes a new operation to the queue.\n * @param {function(Uint8Array, number, *)} fn Function to call\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @returns {Writer} `this`\n * @private\n */\nWriter.prototype._push = function push(fn, len, val) {\n this.tail = this.tail.next = new Op(fn, len, val);\n this.len += len;\n return this;\n};\n\nfunction writeByte(val, buf, pos) {\n buf[pos] = val & 255;\n}\n\nfunction writeVarint32(val, buf, pos) {\n while (val > 127) {\n buf[pos++] = val & 127 | 128;\n val >>>= 7;\n }\n buf[pos] = val;\n}\n\n/**\n * Constructs a new varint writer operation instance.\n * @classdesc Scheduled varint writer operation.\n * @extends Op\n * @constructor\n * @param {number} len Value byte length\n * @param {number} val Value to write\n * @ignore\n */\nfunction VarintOp(len, val) {\n this.len = len;\n this.next = undefined;\n this.val = val;\n}\n\nVarintOp.prototype = Object.create(Op.prototype);\nVarintOp.prototype.fn = writeVarint32;\n\n/**\n * Writes an unsigned 32 bit value as a varint.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.uint32 = function write_uint32(value) {\n // here, the call to this.push has been inlined and a varint specific Op subclass is used.\n // uint32 is by far the most frequently used operation and benefits significantly from this.\n this.len += (this.tail = this.tail.next = new VarintOp(\n (value = value >>> 0)\n < 128 ? 1\n : value < 16384 ? 2\n : value < 2097152 ? 3\n : value < 268435456 ? 4\n : 5,\n value)).len;\n return this;\n};\n\n/**\n * Writes a signed 32 bit value as a varint.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.int32 = function write_int32(value) {\n return value < 0\n ? this._push(writeVarint64, 10, LongBits.fromNumber(value)) // 10 bytes per spec\n : this.uint32(value);\n};\n\n/**\n * Writes a 32 bit value as a varint, zig-zag encoded.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sint32 = function write_sint32(value) {\n return this.uint32((value << 1 ^ value >> 31) >>> 0);\n};\n\nfunction writeVarint64(val, buf, pos) {\n while (val.hi) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = (val.lo >>> 7 | val.hi << 25) >>> 0;\n val.hi >>>= 7;\n }\n while (val.lo > 127) {\n buf[pos++] = val.lo & 127 | 128;\n val.lo = val.lo >>> 7;\n }\n buf[pos++] = val.lo;\n}\n\n/**\n * Writes an unsigned 64 bit value as a varint.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.uint64 = function write_uint64(value) {\n var bits = LongBits.from(value);\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a signed 64 bit value as a varint.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.int64 = Writer.prototype.uint64;\n\n/**\n * Writes a signed 64 bit value as a varint, zig-zag encoded.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sint64 = function write_sint64(value) {\n var bits = LongBits.from(value).zzEncode();\n return this._push(writeVarint64, bits.length(), bits);\n};\n\n/**\n * Writes a boolish value as a varint.\n * @param {boolean} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bool = function write_bool(value) {\n return this._push(writeByte, 1, value ? 1 : 0);\n};\n\nfunction writeFixed32(val, buf, pos) {\n buf[pos ] = val & 255;\n buf[pos + 1] = val >>> 8 & 255;\n buf[pos + 2] = val >>> 16 & 255;\n buf[pos + 3] = val >>> 24;\n}\n\n/**\n * Writes an unsigned 32 bit value as fixed 32 bits.\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.fixed32 = function write_fixed32(value) {\n return this._push(writeFixed32, 4, value >>> 0);\n};\n\n/**\n * Writes a signed 32 bit value as fixed 32 bits.\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.sfixed32 = Writer.prototype.fixed32;\n\n/**\n * Writes an unsigned 64 bit value as fixed 64 bits.\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.fixed64 = function write_fixed64(value) {\n var bits = LongBits.from(value);\n return this._push(writeFixed32, 4, bits.lo)._push(writeFixed32, 4, bits.hi);\n};\n\n/**\n * Writes a signed 64 bit value as fixed 64 bits.\n * @function\n * @param {Long|number|string} value Value to write\n * @returns {Writer} `this`\n * @throws {TypeError} If `value` is a string and no long library is present.\n */\nWriter.prototype.sfixed64 = Writer.prototype.fixed64;\n\n/**\n * Writes a float (32 bit).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.float = function write_float(value) {\n return this._push(util.float.writeFloatLE, 4, value);\n};\n\n/**\n * Writes a double (64 bit float).\n * @function\n * @param {number} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.double = function write_double(value) {\n return this._push(util.float.writeDoubleLE, 8, value);\n};\n\nvar writeBytes = util.Array.prototype.set\n ? function writeBytes_set(val, buf, pos) {\n buf.set(val, pos); // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytes_for(val, buf, pos) {\n for (var i = 0; i < val.length; ++i)\n buf[pos + i] = val[i];\n };\n\n/**\n * Writes a sequence of bytes.\n * @param {Uint8Array|string} value Buffer or base64 encoded string to write\n * @returns {Writer} `this`\n */\nWriter.prototype.bytes = function write_bytes(value) {\n var len = value.length >>> 0;\n if (!len)\n return this._push(writeByte, 1, 0);\n if (util.isString(value)) {\n var buf = Writer.alloc(len = base64.length(value));\n base64.decode(value, buf, 0);\n value = buf;\n }\n return this.uint32(len)._push(writeBytes, len, value);\n};\n\n/**\n * Writes a string.\n * @param {string} value Value to write\n * @returns {Writer} `this`\n */\nWriter.prototype.string = function write_string(value) {\n var len = utf8.length(value);\n return len\n ? this.uint32(len)._push(utf8.write, len, value)\n : this._push(writeByte, 1, 0);\n};\n\n/**\n * Forks this writer's state by pushing it to a stack.\n * Calling {@link Writer#reset|reset} or {@link Writer#ldelim|ldelim} resets the writer to the previous state.\n * @returns {Writer} `this`\n */\nWriter.prototype.fork = function fork() {\n this.states = new State(this);\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n return this;\n};\n\n/**\n * Resets this instance to the last state.\n * @returns {Writer} `this`\n */\nWriter.prototype.reset = function reset() {\n if (this.states) {\n this.head = this.states.head;\n this.tail = this.states.tail;\n this.len = this.states.len;\n this.states = this.states.next;\n } else {\n this.head = this.tail = new Op(noop, 0, 0);\n this.len = 0;\n }\n return this;\n};\n\n/**\n * Resets to the last state and appends the fork state's current write length as a varint followed by its operations.\n * @returns {Writer} `this`\n */\nWriter.prototype.ldelim = function ldelim() {\n var head = this.head,\n tail = this.tail,\n len = this.len;\n this.reset().uint32(len);\n if (len) {\n this.tail.next = head.next; // skip noop\n this.tail = tail;\n this.len += len;\n }\n return this;\n};\n\n/**\n * Finishes the write operation.\n * @returns {Uint8Array} Finished buffer\n */\nWriter.prototype.finish = function finish() {\n var head = this.head.next, // skip noop\n buf = this.constructor.alloc(this.len),\n pos = 0;\n while (head) {\n head.fn(head.val, buf, pos);\n pos += head.len;\n head = head.next;\n }\n // this.head = this.tail = null;\n return buf;\n};\n\nWriter._configure = function(BufferWriter_) {\n BufferWriter = BufferWriter_;\n Writer.create = create();\n BufferWriter._configure();\n};\n", "\"use strict\";\nmodule.exports = BufferWriter;\n\n// extends Writer\nvar Writer = require(\"./writer\");\n(BufferWriter.prototype = Object.create(Writer.prototype)).constructor = BufferWriter;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer writer instance.\n * @classdesc Wire format writer using node buffers.\n * @extends Writer\n * @constructor\n */\nfunction BufferWriter() {\n Writer.call(this);\n}\n\nBufferWriter._configure = function () {\n /**\n * Allocates a buffer of the specified size.\n * @function\n * @param {number} size Buffer size\n * @returns {Buffer} Buffer\n */\n BufferWriter.alloc = util._Buffer_allocUnsafe;\n\n BufferWriter.writeBytesBuffer = util.Buffer && util.Buffer.prototype instanceof Uint8Array && util.Buffer.prototype.set.name === \"set\"\n ? function writeBytesBuffer_set(val, buf, pos) {\n buf.set(val, pos); // faster than copy (requires node >= 4 where Buffers extend Uint8Array and set is properly inherited)\n // also works for plain array values\n }\n /* istanbul ignore next */\n : function writeBytesBuffer_copy(val, buf, pos) {\n if (val.copy) // Buffer values\n val.copy(buf, pos, 0, val.length);\n else for (var i = 0; i < val.length;) // plain array values\n buf[pos++] = val[i++];\n };\n};\n\n\n/**\n * @override\n */\nBufferWriter.prototype.bytes = function write_bytes_buffer(value) {\n if (util.isString(value))\n value = util._Buffer_from(value, \"base64\");\n var len = value.length >>> 0;\n this.uint32(len);\n if (len)\n this._push(BufferWriter.writeBytesBuffer, len, value);\n return this;\n};\n\nfunction writeStringBuffer(val, buf, pos) {\n if (val.length < 40) // plain js is faster for short strings (probably due to redundant assertions)\n util.utf8.write(val, buf, pos);\n else if (buf.utf8Write)\n buf.utf8Write(val, pos);\n else\n buf.write(val, pos);\n}\n\n/**\n * @override\n */\nBufferWriter.prototype.string = function write_string_buffer(value) {\n var len = util.Buffer.byteLength(value);\n this.uint32(len);\n if (len)\n this._push(writeStringBuffer, len, value);\n return this;\n};\n\n\n/**\n * Finishes the write operation.\n * @name BufferWriter#finish\n * @function\n * @returns {Buffer} Finished buffer\n */\n\nBufferWriter._configure();\n", "\"use strict\";\nmodule.exports = Reader;\n\nvar util = require(\"./util/minimal\");\n\nvar BufferReader; // cyclic\n\nvar LongBits = util.LongBits,\n utf8 = util.utf8;\n\n/* istanbul ignore next */\nfunction indexOutOfRange(reader, writeLength) {\n return RangeError(\"index out of range: \" + reader.pos + \" + \" + (writeLength || 1) + \" > \" + reader.len);\n}\n\n/**\n * Constructs a new reader instance using the specified buffer.\n * @classdesc Wire format reader using `Uint8Array` if available, otherwise `Array`.\n * @constructor\n * @param {Uint8Array} buffer Buffer to read from\n */\nfunction Reader(buffer) {\n\n /**\n * Read buffer.\n * @type {Uint8Array}\n */\n this.buf = buffer;\n\n /**\n * Read buffer position.\n * @type {number}\n */\n this.pos = 0;\n\n /**\n * Read buffer length.\n * @type {number}\n */\n this.len = buffer.length;\n}\n\nvar create_array = typeof Uint8Array !== \"undefined\"\n ? function create_typed_array(buffer) {\n if (buffer instanceof Uint8Array || Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n }\n /* istanbul ignore next */\n : function create_array(buffer) {\n if (Array.isArray(buffer))\n return new Reader(buffer);\n throw Error(\"illegal buffer\");\n };\n\nvar create = function create() {\n return util.Buffer\n ? function create_buffer_setup(buffer) {\n return (Reader.create = function create_buffer(buffer) {\n return util.Buffer.isBuffer(buffer)\n ? new BufferReader(buffer)\n /* istanbul ignore next */\n : create_array(buffer);\n })(buffer);\n }\n /* istanbul ignore next */\n : create_array;\n};\n\n/**\n * Creates a new reader using the specified buffer.\n * @function\n * @param {Uint8Array|Buffer} buffer Buffer to read from\n * @returns {Reader|BufferReader} A {@link BufferReader} if `buffer` is a Buffer, otherwise a {@link Reader}\n * @throws {Error} If `buffer` is not a valid buffer\n */\nReader.create = create();\n\nReader.prototype._slice = util.Array.prototype.subarray || /* istanbul ignore next */ util.Array.prototype.slice;\n\n/**\n * Reads a varint as an unsigned 32 bit value.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.uint32 = (function read_uint32_setup() {\n var value = 4294967295; // optimizer type-hint, tends to deopt otherwise (?!)\n return function read_uint32() {\n value = ( this.buf[this.pos] & 127 ) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 7) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 14) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 127) << 21) >>> 0; if (this.buf[this.pos++] < 128) return value;\n value = (value | (this.buf[this.pos] & 15) << 28) >>> 0; if (this.buf[this.pos++] < 128) return value;\n\n /* istanbul ignore if */\n if ((this.pos += 5) > this.len) {\n this.pos = this.len;\n throw indexOutOfRange(this, 10);\n }\n return value;\n };\n})();\n\n/**\n * Reads a varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.int32 = function read_int32() {\n return this.uint32() | 0;\n};\n\n/**\n * Reads a zig-zag encoded varint as a signed 32 bit value.\n * @returns {number} Value read\n */\nReader.prototype.sint32 = function read_sint32() {\n var value = this.uint32();\n return value >>> 1 ^ -(value & 1) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readLongVarint() {\n // tends to deopt with local vars for octet etc.\n var bits = new LongBits(0, 0);\n var i = 0;\n if (this.len - this.pos > 4) { // fast route (lo)\n for (; i < 4; ++i) {\n // 1st..4th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 5th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << 28) >>> 0;\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) >> 4) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n i = 0;\n } else {\n for (; i < 3; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 1st..3th\n bits.lo = (bits.lo | (this.buf[this.pos] & 127) << i * 7) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n // 4th\n bits.lo = (bits.lo | (this.buf[this.pos++] & 127) << i * 7) >>> 0;\n return bits;\n }\n if (this.len - this.pos > 4) { // fast route (hi)\n for (; i < 5; ++i) {\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n } else {\n for (; i < 5; ++i) {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n // 6th..10th\n bits.hi = (bits.hi | (this.buf[this.pos] & 127) << i * 7 + 3) >>> 0;\n if (this.buf[this.pos++] < 128)\n return bits;\n }\n }\n /* istanbul ignore next */\n throw Error(\"invalid varint encoding\");\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads a varint as a signed 64 bit value.\n * @name Reader#int64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as an unsigned 64 bit value.\n * @name Reader#uint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a zig-zag encoded varint as a signed 64 bit value.\n * @name Reader#sint64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a varint as a boolean.\n * @returns {boolean} Value read\n */\nReader.prototype.bool = function read_bool() {\n return this.uint32() !== 0;\n};\n\nfunction readFixed32_end(buf, end) { // note that this uses `end`, not `pos`\n return (buf[end - 4]\n | buf[end - 3] << 8\n | buf[end - 2] << 16\n | buf[end - 1] << 24) >>> 0;\n}\n\n/**\n * Reads fixed 32 bits as an unsigned 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.fixed32 = function read_fixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4);\n};\n\n/**\n * Reads fixed 32 bits as a signed 32 bit integer.\n * @returns {number} Value read\n */\nReader.prototype.sfixed32 = function read_sfixed32() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n return readFixed32_end(this.buf, this.pos += 4) | 0;\n};\n\n/* eslint-disable no-invalid-this */\n\nfunction readFixed64(/* this: Reader */) {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 8);\n\n return new LongBits(readFixed32_end(this.buf, this.pos += 4), readFixed32_end(this.buf, this.pos += 4));\n}\n\n/* eslint-enable no-invalid-this */\n\n/**\n * Reads fixed 64 bits.\n * @name Reader#fixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads zig-zag encoded fixed 64 bits.\n * @name Reader#sfixed64\n * @function\n * @returns {Long} Value read\n */\n\n/**\n * Reads a float (32 bit) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.float = function read_float() {\n\n /* istanbul ignore if */\n if (this.pos + 4 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readFloatLE(this.buf, this.pos);\n this.pos += 4;\n return value;\n};\n\n/**\n * Reads a double (64 bit float) as a number.\n * @function\n * @returns {number} Value read\n */\nReader.prototype.double = function read_double() {\n\n /* istanbul ignore if */\n if (this.pos + 8 > this.len)\n throw indexOutOfRange(this, 4);\n\n var value = util.float.readDoubleLE(this.buf, this.pos);\n this.pos += 8;\n return value;\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @returns {Uint8Array} Value read\n */\nReader.prototype.bytes = function read_bytes() {\n var length = this.uint32(),\n start = this.pos,\n end = this.pos + length;\n\n /* istanbul ignore if */\n if (end > this.len)\n throw indexOutOfRange(this, length);\n\n this.pos += length;\n if (Array.isArray(this.buf)) // plain array\n return this.buf.slice(start, end);\n return start === end // fix for IE 10/Win8 and others' subarray returning array of size 1\n ? new this.buf.constructor(0)\n : this._slice.call(this.buf, start, end);\n};\n\n/**\n * Reads a string preceeded by its byte length as a varint.\n * @returns {string} Value read\n */\nReader.prototype.string = function read_string() {\n var bytes = this.bytes();\n return utf8.read(bytes, 0, bytes.length);\n};\n\n/**\n * Skips the specified number of bytes if specified, otherwise skips a varint.\n * @param {number} [length] Length if known, otherwise a varint is assumed\n * @returns {Reader} `this`\n */\nReader.prototype.skip = function skip(length) {\n if (typeof length === \"number\") {\n /* istanbul ignore if */\n if (this.pos + length > this.len)\n throw indexOutOfRange(this, length);\n this.pos += length;\n } else {\n do {\n /* istanbul ignore if */\n if (this.pos >= this.len)\n throw indexOutOfRange(this);\n } while (this.buf[this.pos++] & 128);\n }\n return this;\n};\n\n/**\n * Skips the next element of the specified wire type.\n * @param {number} wireType Wire type received\n * @returns {Reader} `this`\n */\nReader.prototype.skipType = function(wireType) {\n switch (wireType) {\n case 0:\n this.skip();\n break;\n case 1:\n this.skip(8);\n break;\n case 2:\n this.skip(this.uint32());\n break;\n case 3:\n while ((wireType = this.uint32() & 7) !== 4) {\n this.skipType(wireType);\n }\n break;\n case 5:\n this.skip(4);\n break;\n\n /* istanbul ignore next */\n default:\n throw Error(\"invalid wire type \" + wireType + \" at offset \" + this.pos);\n }\n return this;\n};\n\nReader._configure = function(BufferReader_) {\n BufferReader = BufferReader_;\n Reader.create = create();\n BufferReader._configure();\n\n var fn = util.Long ? \"toLong\" : /* istanbul ignore next */ \"toNumber\";\n util.merge(Reader.prototype, {\n\n int64: function read_int64() {\n return readLongVarint.call(this)[fn](false);\n },\n\n uint64: function read_uint64() {\n return readLongVarint.call(this)[fn](true);\n },\n\n sint64: function read_sint64() {\n return readLongVarint.call(this).zzDecode()[fn](false);\n },\n\n fixed64: function read_fixed64() {\n return readFixed64.call(this)[fn](true);\n },\n\n sfixed64: function read_sfixed64() {\n return readFixed64.call(this)[fn](false);\n }\n\n });\n};\n", "\"use strict\";\nmodule.exports = BufferReader;\n\n// extends Reader\nvar Reader = require(\"./reader\");\n(BufferReader.prototype = Object.create(Reader.prototype)).constructor = BufferReader;\n\nvar util = require(\"./util/minimal\");\n\n/**\n * Constructs a new buffer reader instance.\n * @classdesc Wire format reader using node buffers.\n * @extends Reader\n * @constructor\n * @param {Buffer} buffer Buffer to read from\n */\nfunction BufferReader(buffer) {\n Reader.call(this, buffer);\n\n /**\n * Read buffer.\n * @name BufferReader#buf\n * @type {Buffer}\n */\n}\n\nBufferReader._configure = function () {\n /* istanbul ignore else */\n if (util.Buffer)\n BufferReader.prototype._slice = util.Buffer.prototype.slice;\n};\n\n\n/**\n * @override\n */\nBufferReader.prototype.string = function read_string_buffer() {\n var len = this.uint32(); // modifies pos\n return this.buf.utf8Slice\n ? this.buf.utf8Slice(this.pos, this.pos = Math.min(this.pos + len, this.len))\n : this.buf.toString(\"utf-8\", this.pos, this.pos = Math.min(this.pos + len, this.len));\n};\n\n/**\n * Reads a sequence of bytes preceeded by its length as a varint.\n * @name BufferReader#bytes\n * @function\n * @returns {Buffer} Value read\n */\n\nBufferReader._configure();\n", "\"use strict\";\nmodule.exports = Service;\n\nvar util = require(\"../util/minimal\");\n\n// Extends EventEmitter\n(Service.prototype = Object.create(util.EventEmitter.prototype)).constructor = Service;\n\n/**\n * A service method callback as used by {@link rpc.ServiceMethod|ServiceMethod}.\n *\n * Differs from {@link RPCImplCallback} in that it is an actual callback of a service method which may not return `response = null`.\n * @typedef rpc.ServiceMethodCallback\n * @template TRes extends Message\n * @type {function}\n * @param {Error|null} error Error, if any\n * @param {TRes} [response] Response message\n * @returns {undefined}\n */\n\n/**\n * A service method part of a {@link rpc.Service} as created by {@link Service.create}.\n * @typedef rpc.ServiceMethod\n * @template TReq extends Message\n * @template TRes extends Message\n * @type {function}\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} [callback] Node-style callback called with the error, if any, and the response message\n * @returns {Promise>} Promise if `callback` has been omitted, otherwise `undefined`\n */\n\n/**\n * Constructs a new RPC service instance.\n * @classdesc An RPC service as returned by {@link Service#create}.\n * @exports rpc.Service\n * @extends util.EventEmitter\n * @constructor\n * @param {RPCImpl} rpcImpl RPC implementation\n * @param {boolean} [requestDelimited=false] Whether requests are length-delimited\n * @param {boolean} [responseDelimited=false] Whether responses are length-delimited\n */\nfunction Service(rpcImpl, requestDelimited, responseDelimited) {\n\n if (typeof rpcImpl !== \"function\")\n throw TypeError(\"rpcImpl must be a function\");\n\n util.EventEmitter.call(this);\n\n /**\n * RPC implementation. Becomes `null` once the service is ended.\n * @type {RPCImpl|null}\n */\n this.rpcImpl = rpcImpl;\n\n /**\n * Whether requests are length-delimited.\n * @type {boolean}\n */\n this.requestDelimited = Boolean(requestDelimited);\n\n /**\n * Whether responses are length-delimited.\n * @type {boolean}\n */\n this.responseDelimited = Boolean(responseDelimited);\n}\n\n/**\n * Calls a service method through {@link rpc.Service#rpcImpl|rpcImpl}.\n * @param {Method|rpc.ServiceMethod} method Reflected or static method\n * @param {Constructor} requestCtor Request constructor\n * @param {Constructor} responseCtor Response constructor\n * @param {TReq|Properties} request Request message or plain object\n * @param {rpc.ServiceMethodCallback} callback Service callback\n * @returns {undefined}\n * @template TReq extends Message\n * @template TRes extends Message\n */\nService.prototype.rpcCall = function rpcCall(method, requestCtor, responseCtor, request, callback) {\n\n if (!request)\n throw TypeError(\"request must be specified\");\n\n var self = this;\n if (!callback)\n return util.asPromise(rpcCall, self, method, requestCtor, responseCtor, request);\n\n if (!self.rpcImpl) {\n setTimeout(function() { callback(Error(\"already ended\")); }, 0);\n return undefined;\n }\n\n try {\n return self.rpcImpl(\n method,\n requestCtor[self.requestDelimited ? \"encodeDelimited\" : \"encode\"](request).finish(),\n function rpcCallback(err, response) {\n\n if (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n\n if (response === null) {\n self.end(/* endedByRPC */ true);\n return undefined;\n }\n\n if (!(response instanceof responseCtor)) {\n try {\n response = responseCtor[self.responseDelimited ? \"decodeDelimited\" : \"decode\"](response);\n } catch (err) {\n self.emit(\"error\", err, method);\n return callback(err);\n }\n }\n\n self.emit(\"data\", response, method);\n return callback(null, response);\n }\n );\n } catch (err) {\n self.emit(\"error\", err, method);\n setTimeout(function() { callback(err); }, 0);\n return undefined;\n }\n};\n\n/**\n * Ends this service and emits the `end` event.\n * @param {boolean} [endedByRPC=false] Whether the service has been ended by the RPC implementation.\n * @returns {rpc.Service} `this`\n */\nService.prototype.end = function end(endedByRPC) {\n if (this.rpcImpl) {\n if (!endedByRPC) // signal end to rpcImpl\n this.rpcImpl(null, null, null);\n this.rpcImpl = null;\n this.emit(\"end\").off();\n }\n return this;\n};\n", "\"use strict\";\n\n/**\n * Streaming RPC helpers.\n * @namespace\n */\nvar rpc = exports;\n\n/**\n * RPC implementation passed to {@link Service#create} performing a service request on network level, i.e. by utilizing http requests or websockets.\n * @typedef RPCImpl\n * @type {function}\n * @param {Method|rpc.ServiceMethod,Message<{}>>} method Reflected or static method being called\n * @param {Uint8Array} requestData Request data\n * @param {RPCImplCallback} callback Callback function\n * @returns {undefined}\n * @example\n * function rpcImpl(method, requestData, callback) {\n * if (protobuf.util.lcFirst(method.name) !== \"myMethod\") // compatible with static code\n * throw Error(\"no such method\");\n * asynchronouslyObtainAResponse(requestData, function(err, responseData) {\n * callback(err, responseData);\n * });\n * }\n */\n\n/**\n * Node-style callback as used by {@link RPCImpl}.\n * @typedef RPCImplCallback\n * @type {function}\n * @param {Error|null} error Error, if any, otherwise `null`\n * @param {Uint8Array|null} [response] Response data or `null` to signal end of stream, if there hasn't been an error\n * @returns {undefined}\n */\n\nrpc.Service = require(\"./rpc/service\");\n", "\"use strict\";\nmodule.exports = {};\n\n/**\n * Named roots.\n * This is where pbjs stores generated structures (the option `-r, --root` specifies a name).\n * Can also be used manually to make roots available accross modules.\n * @name roots\n * @type {Object.}\n * @example\n * // pbjs -r myroot -o compiled.js ...\n *\n * // in another module:\n * require(\"./compiled.js\");\n *\n * // in any subsequent module:\n * var root = protobuf.roots[\"myroot\"];\n */\n", "\"use strict\";\nvar protobuf = exports;\n\n/**\n * Build type, one of `\"full\"`, `\"light\"` or `\"minimal\"`.\n * @name build\n * @type {string}\n * @const\n */\nprotobuf.build = \"minimal\";\n\n// Serialization\nprotobuf.Writer = require(\"./writer\");\nprotobuf.BufferWriter = require(\"./writer_buffer\");\nprotobuf.Reader = require(\"./reader\");\nprotobuf.BufferReader = require(\"./reader_buffer\");\n\n// Utility\nprotobuf.util = require(\"./util/minimal\");\nprotobuf.rpc = require(\"./rpc\");\nprotobuf.roots = require(\"./roots\");\nprotobuf.configure = configure;\n\n/* istanbul ignore next */\n/**\n * Reconfigures the library according to the environment.\n * @returns {undefined}\n */\nfunction configure() {\n protobuf.util._configure();\n protobuf.Writer._configure(protobuf.BufferWriter);\n protobuf.Reader._configure(protobuf.BufferReader);\n}\n\n// Set up buffer utility according to the environment\nconfigure();\n", "// minimal library entry point.\n\n\"use strict\";\nmodule.exports = require(\"./src/index-minimal\");\n", "/*eslint-disable block-scoped-var, id-length, no-control-regex, no-magic-numbers, no-prototype-builtins, no-redeclare, no-shadow, no-var, sort-vars*/\n\"use strict\";\n\nvar $protobuf = require(\"protobufjs/minimal\");\n\n// Common aliases\nvar $Reader = $protobuf.Reader, $Writer = $protobuf.Writer, $util = $protobuf.util;\n\n// Exported root namespace\nvar $root = $protobuf.roots[\"default\"] || ($protobuf.roots[\"default\"] = {});\n\n$root.ics23 = (function() {\n\n /**\n * Namespace ics23.\n * @exports ics23\n * @namespace\n */\n var ics23 = {};\n\n /**\n * HashOp enum.\n * @name ics23.HashOp\n * @enum {string}\n * @property {number} NO_HASH=0 NO_HASH value\n * @property {number} SHA256=1 SHA256 value\n * @property {number} SHA512=2 SHA512 value\n * @property {number} KECCAK=3 KECCAK value\n * @property {number} RIPEMD160=4 RIPEMD160 value\n * @property {number} BITCOIN=5 BITCOIN value\n * @property {number} SHA512_256=6 SHA512_256 value\n */\n ics23.HashOp = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"NO_HASH\"] = 0;\n values[valuesById[1] = \"SHA256\"] = 1;\n values[valuesById[2] = \"SHA512\"] = 2;\n values[valuesById[3] = \"KECCAK\"] = 3;\n values[valuesById[4] = \"RIPEMD160\"] = 4;\n values[valuesById[5] = \"BITCOIN\"] = 5;\n values[valuesById[6] = \"SHA512_256\"] = 6;\n return values;\n })();\n\n /**\n * LengthOp defines how to process the key and value of the LeafOp\n * to include length information. After encoding the length with the given\n * algorithm, the length will be prepended to the key and value bytes.\n * (Each one with it's own encoded length)\n * @name ics23.LengthOp\n * @enum {string}\n * @property {number} NO_PREFIX=0 NO_PREFIX value\n * @property {number} VAR_PROTO=1 VAR_PROTO value\n * @property {number} VAR_RLP=2 VAR_RLP value\n * @property {number} FIXED32_BIG=3 FIXED32_BIG value\n * @property {number} FIXED32_LITTLE=4 FIXED32_LITTLE value\n * @property {number} FIXED64_BIG=5 FIXED64_BIG value\n * @property {number} FIXED64_LITTLE=6 FIXED64_LITTLE value\n * @property {number} REQUIRE_32_BYTES=7 REQUIRE_32_BYTES value\n * @property {number} REQUIRE_64_BYTES=8 REQUIRE_64_BYTES value\n */\n ics23.LengthOp = (function() {\n var valuesById = {}, values = Object.create(valuesById);\n values[valuesById[0] = \"NO_PREFIX\"] = 0;\n values[valuesById[1] = \"VAR_PROTO\"] = 1;\n values[valuesById[2] = \"VAR_RLP\"] = 2;\n values[valuesById[3] = \"FIXED32_BIG\"] = 3;\n values[valuesById[4] = \"FIXED32_LITTLE\"] = 4;\n values[valuesById[5] = \"FIXED64_BIG\"] = 5;\n values[valuesById[6] = \"FIXED64_LITTLE\"] = 6;\n values[valuesById[7] = \"REQUIRE_32_BYTES\"] = 7;\n values[valuesById[8] = \"REQUIRE_64_BYTES\"] = 8;\n return values;\n })();\n\n ics23.ExistenceProof = (function() {\n\n /**\n * Properties of an ExistenceProof.\n * @memberof ics23\n * @interface IExistenceProof\n * @property {Uint8Array|null} [key] ExistenceProof key\n * @property {Uint8Array|null} [value] ExistenceProof value\n * @property {ics23.ILeafOp|null} [leaf] ExistenceProof leaf\n * @property {Array.|null} [path] ExistenceProof path\n */\n\n /**\n * Constructs a new ExistenceProof.\n * @memberof ics23\n * @classdesc ExistenceProof takes a key and a value and a set of steps to perform on it.\n * The result of peforming all these steps will provide a \"root hash\", which can\n * be compared to the value in a header.\n * \n * Since it is computationally infeasible to produce a hash collission for any of the used\n * cryptographic hash functions, if someone can provide a series of operations to transform\n * a given key and value into a root hash that matches some trusted root, these key and values\n * must be in the referenced merkle tree.\n * \n * The only possible issue is maliablity in LeafOp, such as providing extra prefix data,\n * which should be controlled by a spec. Eg. with lengthOp as NONE,\n * prefix = FOO, key = BAR, value = CHOICE\n * and\n * prefix = F, key = OOBAR, value = CHOICE\n * would produce the same value.\n * \n * With LengthOp this is tricker but not impossible. Which is why the \"leafPrefixEqual\" field\n * in the ProofSpec is valuable to prevent this mutability. And why all trees should\n * length-prefix the data before hashing it.\n * @implements IExistenceProof\n * @constructor\n * @param {ics23.IExistenceProof=} [properties] Properties to set\n */\n function ExistenceProof(properties) {\n this.path = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * ExistenceProof value.\n * @member {Uint8Array} value\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.value = $util.newBuffer([]);\n\n /**\n * ExistenceProof leaf.\n * @member {ics23.ILeafOp|null|undefined} leaf\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.leaf = null;\n\n /**\n * ExistenceProof path.\n * @member {Array.} path\n * @memberof ics23.ExistenceProof\n * @instance\n */\n ExistenceProof.prototype.path = $util.emptyArray;\n\n /**\n * Creates a new ExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof=} [properties] Properties to set\n * @returns {ics23.ExistenceProof} ExistenceProof instance\n */\n ExistenceProof.create = function create(properties) {\n return new ExistenceProof(properties);\n };\n\n /**\n * Encodes the specified ExistenceProof message. Does not implicitly {@link ics23.ExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof} message ExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.value != null && message.hasOwnProperty(\"value\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value);\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n $root.ics23.LeafOp.encode(message.leaf, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.path != null && message.path.length)\n for (var i = 0; i < message.path.length; ++i)\n $root.ics23.InnerOp.encode(message.path[i], writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified ExistenceProof message, length delimited. Does not implicitly {@link ics23.ExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.IExistenceProof} message ExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an ExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.ExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.ExistenceProof} ExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.ExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if (!(message.path && message.path.length))\n message.path = [];\n message.path.push($root.ics23.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an ExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.ExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.ExistenceProof} ExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an ExistenceProof message.\n * @function verify\n * @memberof ics23.ExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.value != null && message.hasOwnProperty(\"value\"))\n if (!(message.value && typeof message.value.length === \"number\" || $util.isString(message.value)))\n return \"value: buffer expected\";\n if (message.leaf != null && message.hasOwnProperty(\"leaf\")) {\n var error = $root.ics23.LeafOp.verify(message.leaf);\n if (error)\n return \"leaf.\" + error;\n }\n if (message.path != null && message.hasOwnProperty(\"path\")) {\n if (!Array.isArray(message.path))\n return \"path: array expected\";\n for (var i = 0; i < message.path.length; ++i) {\n var error = $root.ics23.InnerOp.verify(message.path[i]);\n if (error)\n return \"path.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates an ExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.ExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.ExistenceProof} ExistenceProof\n */\n ExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.ExistenceProof)\n return object;\n var message = new $root.ics23.ExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.value != null)\n if (typeof object.value === \"string\")\n $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0);\n else if (object.value.length)\n message.value = object.value;\n if (object.leaf != null) {\n if (typeof object.leaf !== \"object\")\n throw TypeError(\".ics23.ExistenceProof.leaf: object expected\");\n message.leaf = $root.ics23.LeafOp.fromObject(object.leaf);\n }\n if (object.path) {\n if (!Array.isArray(object.path))\n throw TypeError(\".ics23.ExistenceProof.path: array expected\");\n message.path = [];\n for (var i = 0; i < object.path.length; ++i) {\n if (typeof object.path[i] !== \"object\")\n throw TypeError(\".ics23.ExistenceProof.path: object expected\");\n message.path[i] = $root.ics23.InnerOp.fromObject(object.path[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from an ExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.ExistenceProof\n * @static\n * @param {ics23.ExistenceProof} message ExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n ExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.path = [];\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n if (options.bytes === String)\n object.value = \"\";\n else {\n object.value = [];\n if (options.bytes !== Array)\n object.value = $util.newBuffer(object.value);\n }\n object.leaf = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.value != null && message.hasOwnProperty(\"value\"))\n object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value;\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n object.leaf = $root.ics23.LeafOp.toObject(message.leaf, options);\n if (message.path && message.path.length) {\n object.path = [];\n for (var j = 0; j < message.path.length; ++j)\n object.path[j] = $root.ics23.InnerOp.toObject(message.path[j], options);\n }\n return object;\n };\n\n /**\n * Converts this ExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.ExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n ExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ExistenceProof;\n })();\n\n ics23.NonExistenceProof = (function() {\n\n /**\n * Properties of a NonExistenceProof.\n * @memberof ics23\n * @interface INonExistenceProof\n * @property {Uint8Array|null} [key] NonExistenceProof key\n * @property {ics23.IExistenceProof|null} [left] NonExistenceProof left\n * @property {ics23.IExistenceProof|null} [right] NonExistenceProof right\n */\n\n /**\n * Constructs a new NonExistenceProof.\n * @memberof ics23\n * @classdesc Represents a NonExistenceProof.\n * @implements INonExistenceProof\n * @constructor\n * @param {ics23.INonExistenceProof=} [properties] Properties to set\n */\n function NonExistenceProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * NonExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * NonExistenceProof left.\n * @member {ics23.IExistenceProof|null|undefined} left\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.left = null;\n\n /**\n * NonExistenceProof right.\n * @member {ics23.IExistenceProof|null|undefined} right\n * @memberof ics23.NonExistenceProof\n * @instance\n */\n NonExistenceProof.prototype.right = null;\n\n /**\n * Creates a new NonExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof=} [properties] Properties to set\n * @returns {ics23.NonExistenceProof} NonExistenceProof instance\n */\n NonExistenceProof.create = function create(properties) {\n return new NonExistenceProof(properties);\n };\n\n /**\n * Encodes the specified NonExistenceProof message. Does not implicitly {@link ics23.NonExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof} message NonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NonExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.left != null && message.hasOwnProperty(\"left\"))\n $root.ics23.ExistenceProof.encode(message.left, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.right != null && message.hasOwnProperty(\"right\"))\n $root.ics23.ExistenceProof.encode(message.right, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified NonExistenceProof message, length delimited. Does not implicitly {@link ics23.NonExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.INonExistenceProof} message NonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n NonExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a NonExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NonExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.NonExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a NonExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n NonExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a NonExistenceProof message.\n * @function verify\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n NonExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.left != null && message.hasOwnProperty(\"left\")) {\n var error = $root.ics23.ExistenceProof.verify(message.left);\n if (error)\n return \"left.\" + error;\n }\n if (message.right != null && message.hasOwnProperty(\"right\")) {\n var error = $root.ics23.ExistenceProof.verify(message.right);\n if (error)\n return \"right.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a NonExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.NonExistenceProof} NonExistenceProof\n */\n NonExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.NonExistenceProof)\n return object;\n var message = new $root.ics23.NonExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.left != null) {\n if (typeof object.left !== \"object\")\n throw TypeError(\".ics23.NonExistenceProof.left: object expected\");\n message.left = $root.ics23.ExistenceProof.fromObject(object.left);\n }\n if (object.right != null) {\n if (typeof object.right !== \"object\")\n throw TypeError(\".ics23.NonExistenceProof.right: object expected\");\n message.right = $root.ics23.ExistenceProof.fromObject(object.right);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a NonExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.NonExistenceProof\n * @static\n * @param {ics23.NonExistenceProof} message NonExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n NonExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n object.left = null;\n object.right = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.left != null && message.hasOwnProperty(\"left\"))\n object.left = $root.ics23.ExistenceProof.toObject(message.left, options);\n if (message.right != null && message.hasOwnProperty(\"right\"))\n object.right = $root.ics23.ExistenceProof.toObject(message.right, options);\n return object;\n };\n\n /**\n * Converts this NonExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.NonExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n NonExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return NonExistenceProof;\n })();\n\n ics23.CommitmentProof = (function() {\n\n /**\n * Properties of a CommitmentProof.\n * @memberof ics23\n * @interface ICommitmentProof\n * @property {ics23.IExistenceProof|null} [exist] CommitmentProof exist\n * @property {ics23.INonExistenceProof|null} [nonexist] CommitmentProof nonexist\n * @property {ics23.IBatchProof|null} [batch] CommitmentProof batch\n * @property {ics23.ICompressedBatchProof|null} [compressed] CommitmentProof compressed\n */\n\n /**\n * Constructs a new CommitmentProof.\n * @memberof ics23\n * @classdesc Represents a CommitmentProof.\n * @implements ICommitmentProof\n * @constructor\n * @param {ics23.ICommitmentProof=} [properties] Properties to set\n */\n function CommitmentProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CommitmentProof exist.\n * @member {ics23.IExistenceProof|null|undefined} exist\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.exist = null;\n\n /**\n * CommitmentProof nonexist.\n * @member {ics23.INonExistenceProof|null|undefined} nonexist\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.nonexist = null;\n\n /**\n * CommitmentProof batch.\n * @member {ics23.IBatchProof|null|undefined} batch\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.batch = null;\n\n /**\n * CommitmentProof compressed.\n * @member {ics23.ICompressedBatchProof|null|undefined} compressed\n * @memberof ics23.CommitmentProof\n * @instance\n */\n CommitmentProof.prototype.compressed = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * CommitmentProof proof.\n * @member {\"exist\"|\"nonexist\"|\"batch\"|\"compressed\"|undefined} proof\n * @memberof ics23.CommitmentProof\n * @instance\n */\n Object.defineProperty(CommitmentProof.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\", \"batch\", \"compressed\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new CommitmentProof instance using the specified properties.\n * @function create\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof=} [properties] Properties to set\n * @returns {ics23.CommitmentProof} CommitmentProof instance\n */\n CommitmentProof.create = function create(properties) {\n return new CommitmentProof(properties);\n };\n\n /**\n * Encodes the specified CommitmentProof message. Does not implicitly {@link ics23.CommitmentProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof} message CommitmentProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CommitmentProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.ExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.NonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.batch != null && message.hasOwnProperty(\"batch\"))\n $root.ics23.BatchProof.encode(message.batch, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.compressed != null && message.hasOwnProperty(\"compressed\"))\n $root.ics23.CompressedBatchProof.encode(message.compressed, writer.uint32(/* id 4, wireType 2 =*/34).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CommitmentProof message, length delimited. Does not implicitly {@link ics23.CommitmentProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.ICommitmentProof} message CommitmentProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CommitmentProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CommitmentProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CommitmentProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CommitmentProof} CommitmentProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CommitmentProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CommitmentProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.NonExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.batch = $root.ics23.BatchProof.decode(reader, reader.uint32());\n break;\n case 4:\n message.compressed = $root.ics23.CompressedBatchProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CommitmentProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CommitmentProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CommitmentProof} CommitmentProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CommitmentProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CommitmentProof message.\n * @function verify\n * @memberof ics23.CommitmentProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CommitmentProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.ExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.NonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n if (message.batch != null && message.hasOwnProperty(\"batch\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.BatchProof.verify(message.batch);\n if (error)\n return \"batch.\" + error;\n }\n }\n if (message.compressed != null && message.hasOwnProperty(\"compressed\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedBatchProof.verify(message.compressed);\n if (error)\n return \"compressed.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CommitmentProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CommitmentProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CommitmentProof} CommitmentProof\n */\n CommitmentProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CommitmentProof)\n return object;\n var message = new $root.ics23.CommitmentProof();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.exist: object expected\");\n message.exist = $root.ics23.ExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.nonexist: object expected\");\n message.nonexist = $root.ics23.NonExistenceProof.fromObject(object.nonexist);\n }\n if (object.batch != null) {\n if (typeof object.batch !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.batch: object expected\");\n message.batch = $root.ics23.BatchProof.fromObject(object.batch);\n }\n if (object.compressed != null) {\n if (typeof object.compressed !== \"object\")\n throw TypeError(\".ics23.CommitmentProof.compressed: object expected\");\n message.compressed = $root.ics23.CompressedBatchProof.fromObject(object.compressed);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CommitmentProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CommitmentProof\n * @static\n * @param {ics23.CommitmentProof} message CommitmentProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CommitmentProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.ExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.NonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n if (message.batch != null && message.hasOwnProperty(\"batch\")) {\n object.batch = $root.ics23.BatchProof.toObject(message.batch, options);\n if (options.oneofs)\n object.proof = \"batch\";\n }\n if (message.compressed != null && message.hasOwnProperty(\"compressed\")) {\n object.compressed = $root.ics23.CompressedBatchProof.toObject(message.compressed, options);\n if (options.oneofs)\n object.proof = \"compressed\";\n }\n return object;\n };\n\n /**\n * Converts this CommitmentProof to JSON.\n * @function toJSON\n * @memberof ics23.CommitmentProof\n * @instance\n * @returns {Object.} JSON object\n */\n CommitmentProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CommitmentProof;\n })();\n\n ics23.LeafOp = (function() {\n\n /**\n * Properties of a LeafOp.\n * @memberof ics23\n * @interface ILeafOp\n * @property {ics23.HashOp|null} [hash] LeafOp hash\n * @property {ics23.HashOp|null} [prehashKey] LeafOp prehashKey\n * @property {ics23.HashOp|null} [prehashValue] LeafOp prehashValue\n * @property {ics23.LengthOp|null} [length] LeafOp length\n * @property {Uint8Array|null} [prefix] LeafOp prefix\n */\n\n /**\n * Constructs a new LeafOp.\n * @memberof ics23\n * @classdesc LeafOp represents the raw key-value data we wish to prove, and\n * must be flexible to represent the internal transformation from\n * the original key-value pairs into the basis hash, for many existing\n * merkle trees.\n * \n * key and value are passed in. So that the signature of this operation is:\n * leafOp(key, value) -> output\n * \n * To process this, first prehash the keys and values if needed (ANY means no hash in this case):\n * hkey = prehashKey(key)\n * hvalue = prehashValue(value)\n * \n * Then combine the bytes, and hash it\n * output = hash(prefix || length(hkey) || hkey || length(hvalue) || hvalue)\n * @implements ILeafOp\n * @constructor\n * @param {ics23.ILeafOp=} [properties] Properties to set\n */\n function LeafOp(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * LeafOp hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.hash = 0;\n\n /**\n * LeafOp prehashKey.\n * @member {ics23.HashOp} prehashKey\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prehashKey = 0;\n\n /**\n * LeafOp prehashValue.\n * @member {ics23.HashOp} prehashValue\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prehashValue = 0;\n\n /**\n * LeafOp length.\n * @member {ics23.LengthOp} length\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.length = 0;\n\n /**\n * LeafOp prefix.\n * @member {Uint8Array} prefix\n * @memberof ics23.LeafOp\n * @instance\n */\n LeafOp.prototype.prefix = $util.newBuffer([]);\n\n /**\n * Creates a new LeafOp instance using the specified properties.\n * @function create\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp=} [properties] Properties to set\n * @returns {ics23.LeafOp} LeafOp instance\n */\n LeafOp.create = function create(properties) {\n return new LeafOp(properties);\n };\n\n /**\n * Encodes the specified LeafOp message. Does not implicitly {@link ics23.LeafOp.verify|verify} messages.\n * @function encode\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp} message LeafOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n LeafOp.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.hash);\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.prehashKey);\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.prehashValue);\n if (message.length != null && message.hasOwnProperty(\"length\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.length);\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.prefix);\n return writer;\n };\n\n /**\n * Encodes the specified LeafOp message, length delimited. Does not implicitly {@link ics23.LeafOp.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.ILeafOp} message LeafOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n LeafOp.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a LeafOp message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.LeafOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.LeafOp} LeafOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n LeafOp.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.LeafOp();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prehashKey = reader.int32();\n break;\n case 3:\n message.prehashValue = reader.int32();\n break;\n case 4:\n message.length = reader.int32();\n break;\n case 5:\n message.prefix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a LeafOp message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.LeafOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.LeafOp} LeafOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n LeafOp.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a LeafOp message.\n * @function verify\n * @memberof ics23.LeafOp\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n LeafOp.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n switch (message.prehashKey) {\n default:\n return \"prehashKey: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n switch (message.prehashValue) {\n default:\n return \"prehashValue: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.length != null && message.hasOwnProperty(\"length\"))\n switch (message.length) {\n default:\n return \"length: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n case 7:\n case 8:\n break;\n }\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n if (!(message.prefix && typeof message.prefix.length === \"number\" || $util.isString(message.prefix)))\n return \"prefix: buffer expected\";\n return null;\n };\n\n /**\n * Creates a LeafOp message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.LeafOp\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.LeafOp} LeafOp\n */\n LeafOp.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.LeafOp)\n return object;\n var message = new $root.ics23.LeafOp();\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n switch (object.prehashKey) {\n case \"NO_HASH\":\n case 0:\n message.prehashKey = 0;\n break;\n case \"SHA256\":\n case 1:\n message.prehashKey = 1;\n break;\n case \"SHA512\":\n case 2:\n message.prehashKey = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.prehashKey = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.prehashKey = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.prehashKey = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.prehashKey = 6;\n break;\n }\n switch (object.prehashValue) {\n case \"NO_HASH\":\n case 0:\n message.prehashValue = 0;\n break;\n case \"SHA256\":\n case 1:\n message.prehashValue = 1;\n break;\n case \"SHA512\":\n case 2:\n message.prehashValue = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.prehashValue = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.prehashValue = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.prehashValue = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.prehashValue = 6;\n break;\n }\n switch (object.length) {\n case \"NO_PREFIX\":\n case 0:\n message.length = 0;\n break;\n case \"VAR_PROTO\":\n case 1:\n message.length = 1;\n break;\n case \"VAR_RLP\":\n case 2:\n message.length = 2;\n break;\n case \"FIXED32_BIG\":\n case 3:\n message.length = 3;\n break;\n case \"FIXED32_LITTLE\":\n case 4:\n message.length = 4;\n break;\n case \"FIXED64_BIG\":\n case 5:\n message.length = 5;\n break;\n case \"FIXED64_LITTLE\":\n case 6:\n message.length = 6;\n break;\n case \"REQUIRE_32_BYTES\":\n case 7:\n message.length = 7;\n break;\n case \"REQUIRE_64_BYTES\":\n case 8:\n message.length = 8;\n break;\n }\n if (object.prefix != null)\n if (typeof object.prefix === \"string\")\n $util.base64.decode(object.prefix, message.prefix = $util.newBuffer($util.base64.length(object.prefix)), 0);\n else if (object.prefix.length)\n message.prefix = object.prefix;\n return message;\n };\n\n /**\n * Creates a plain object from a LeafOp message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.LeafOp\n * @static\n * @param {ics23.LeafOp} message LeafOp\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n LeafOp.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n object.prehashKey = options.enums === String ? \"NO_HASH\" : 0;\n object.prehashValue = options.enums === String ? \"NO_HASH\" : 0;\n object.length = options.enums === String ? \"NO_PREFIX\" : 0;\n if (options.bytes === String)\n object.prefix = \"\";\n else {\n object.prefix = [];\n if (options.bytes !== Array)\n object.prefix = $util.newBuffer(object.prefix);\n }\n }\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n if (message.prehashKey != null && message.hasOwnProperty(\"prehashKey\"))\n object.prehashKey = options.enums === String ? $root.ics23.HashOp[message.prehashKey] : message.prehashKey;\n if (message.prehashValue != null && message.hasOwnProperty(\"prehashValue\"))\n object.prehashValue = options.enums === String ? $root.ics23.HashOp[message.prehashValue] : message.prehashValue;\n if (message.length != null && message.hasOwnProperty(\"length\"))\n object.length = options.enums === String ? $root.ics23.LengthOp[message.length] : message.length;\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n object.prefix = options.bytes === String ? $util.base64.encode(message.prefix, 0, message.prefix.length) : options.bytes === Array ? Array.prototype.slice.call(message.prefix) : message.prefix;\n return object;\n };\n\n /**\n * Converts this LeafOp to JSON.\n * @function toJSON\n * @memberof ics23.LeafOp\n * @instance\n * @returns {Object.} JSON object\n */\n LeafOp.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return LeafOp;\n })();\n\n ics23.InnerOp = (function() {\n\n /**\n * Properties of an InnerOp.\n * @memberof ics23\n * @interface IInnerOp\n * @property {ics23.HashOp|null} [hash] InnerOp hash\n * @property {Uint8Array|null} [prefix] InnerOp prefix\n * @property {Uint8Array|null} [suffix] InnerOp suffix\n */\n\n /**\n * Constructs a new InnerOp.\n * @memberof ics23\n * @classdesc InnerOp represents a merkle-proof step that is not a leaf.\n * It represents concatenating two children and hashing them to provide the next result.\n * \n * The result of the previous step is passed in, so the signature of this op is:\n * innerOp(child) -> output\n * \n * The result of applying InnerOp should be:\n * output = op.hash(op.prefix || child || op.suffix)\n * \n * where the || operator is concatenation of binary data,\n * and child is the result of hashing all the tree below this step.\n * \n * Any special data, like prepending child with the length, or prepending the entire operation with\n * some value to differentiate from leaf nodes, should be included in prefix and suffix.\n * If either of prefix or suffix is empty, we just treat it as an empty string\n * @implements IInnerOp\n * @constructor\n * @param {ics23.IInnerOp=} [properties] Properties to set\n */\n function InnerOp(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InnerOp hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.hash = 0;\n\n /**\n * InnerOp prefix.\n * @member {Uint8Array} prefix\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.prefix = $util.newBuffer([]);\n\n /**\n * InnerOp suffix.\n * @member {Uint8Array} suffix\n * @memberof ics23.InnerOp\n * @instance\n */\n InnerOp.prototype.suffix = $util.newBuffer([]);\n\n /**\n * Creates a new InnerOp instance using the specified properties.\n * @function create\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp=} [properties] Properties to set\n * @returns {ics23.InnerOp} InnerOp instance\n */\n InnerOp.create = function create(properties) {\n return new InnerOp(properties);\n };\n\n /**\n * Encodes the specified InnerOp message. Does not implicitly {@link ics23.InnerOp.verify|verify} messages.\n * @function encode\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp} message InnerOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerOp.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 1, wireType 0 =*/8).int32(message.hash);\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.prefix);\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n writer.uint32(/* id 3, wireType 2 =*/26).bytes(message.suffix);\n return writer;\n };\n\n /**\n * Encodes the specified InnerOp message, length delimited. Does not implicitly {@link ics23.InnerOp.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.IInnerOp} message InnerOp message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerOp.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InnerOp message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.InnerOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.InnerOp} InnerOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerOp.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.InnerOp();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.hash = reader.int32();\n break;\n case 2:\n message.prefix = reader.bytes();\n break;\n case 3:\n message.suffix = reader.bytes();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InnerOp message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.InnerOp\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.InnerOp} InnerOp\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerOp.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InnerOp message.\n * @function verify\n * @memberof ics23.InnerOp\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InnerOp.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n if (!(message.prefix && typeof message.prefix.length === \"number\" || $util.isString(message.prefix)))\n return \"prefix: buffer expected\";\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n if (!(message.suffix && typeof message.suffix.length === \"number\" || $util.isString(message.suffix)))\n return \"suffix: buffer expected\";\n return null;\n };\n\n /**\n * Creates an InnerOp message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.InnerOp\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.InnerOp} InnerOp\n */\n InnerOp.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.InnerOp)\n return object;\n var message = new $root.ics23.InnerOp();\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n if (object.prefix != null)\n if (typeof object.prefix === \"string\")\n $util.base64.decode(object.prefix, message.prefix = $util.newBuffer($util.base64.length(object.prefix)), 0);\n else if (object.prefix.length)\n message.prefix = object.prefix;\n if (object.suffix != null)\n if (typeof object.suffix === \"string\")\n $util.base64.decode(object.suffix, message.suffix = $util.newBuffer($util.base64.length(object.suffix)), 0);\n else if (object.suffix.length)\n message.suffix = object.suffix;\n return message;\n };\n\n /**\n * Creates a plain object from an InnerOp message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.InnerOp\n * @static\n * @param {ics23.InnerOp} message InnerOp\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n InnerOp.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n if (options.bytes === String)\n object.prefix = \"\";\n else {\n object.prefix = [];\n if (options.bytes !== Array)\n object.prefix = $util.newBuffer(object.prefix);\n }\n if (options.bytes === String)\n object.suffix = \"\";\n else {\n object.suffix = [];\n if (options.bytes !== Array)\n object.suffix = $util.newBuffer(object.suffix);\n }\n }\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n if (message.prefix != null && message.hasOwnProperty(\"prefix\"))\n object.prefix = options.bytes === String ? $util.base64.encode(message.prefix, 0, message.prefix.length) : options.bytes === Array ? Array.prototype.slice.call(message.prefix) : message.prefix;\n if (message.suffix != null && message.hasOwnProperty(\"suffix\"))\n object.suffix = options.bytes === String ? $util.base64.encode(message.suffix, 0, message.suffix.length) : options.bytes === Array ? Array.prototype.slice.call(message.suffix) : message.suffix;\n return object;\n };\n\n /**\n * Converts this InnerOp to JSON.\n * @function toJSON\n * @memberof ics23.InnerOp\n * @instance\n * @returns {Object.} JSON object\n */\n InnerOp.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InnerOp;\n })();\n\n ics23.ProofSpec = (function() {\n\n /**\n * Properties of a ProofSpec.\n * @memberof ics23\n * @interface IProofSpec\n * @property {ics23.ILeafOp|null} [leafSpec] ProofSpec leafSpec\n * @property {ics23.IInnerSpec|null} [innerSpec] ProofSpec innerSpec\n * @property {number|null} [maxDepth] ProofSpec maxDepth\n * @property {number|null} [minDepth] ProofSpec minDepth\n */\n\n /**\n * Constructs a new ProofSpec.\n * @memberof ics23\n * @classdesc ProofSpec defines what the expected parameters are for a given proof type.\n * This can be stored in the client and used to validate any incoming proofs.\n * \n * verify(ProofSpec, Proof) -> Proof | Error\n * \n * As demonstrated in tests, if we don't fix the algorithm used to calculate the\n * LeafHash for a given tree, there are many possible key-value pairs that can\n * generate a given hash (by interpretting the preimage differently).\n * We need this for proper security, requires client knows a priori what\n * tree format server uses. But not in code, rather a configuration object.\n * @implements IProofSpec\n * @constructor\n * @param {ics23.IProofSpec=} [properties] Properties to set\n */\n function ProofSpec(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * ProofSpec leafSpec.\n * @member {ics23.ILeafOp|null|undefined} leafSpec\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.leafSpec = null;\n\n /**\n * ProofSpec innerSpec.\n * @member {ics23.IInnerSpec|null|undefined} innerSpec\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.innerSpec = null;\n\n /**\n * ProofSpec maxDepth.\n * @member {number} maxDepth\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.maxDepth = 0;\n\n /**\n * ProofSpec minDepth.\n * @member {number} minDepth\n * @memberof ics23.ProofSpec\n * @instance\n */\n ProofSpec.prototype.minDepth = 0;\n\n /**\n * Creates a new ProofSpec instance using the specified properties.\n * @function create\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec=} [properties] Properties to set\n * @returns {ics23.ProofSpec} ProofSpec instance\n */\n ProofSpec.create = function create(properties) {\n return new ProofSpec(properties);\n };\n\n /**\n * Encodes the specified ProofSpec message. Does not implicitly {@link ics23.ProofSpec.verify|verify} messages.\n * @function encode\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec} message ProofSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProofSpec.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\"))\n $root.ics23.LeafOp.encode(message.leafSpec, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\"))\n $root.ics23.InnerSpec.encode(message.innerSpec, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.maxDepth);\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.minDepth);\n return writer;\n };\n\n /**\n * Encodes the specified ProofSpec message, length delimited. Does not implicitly {@link ics23.ProofSpec.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.IProofSpec} message ProofSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n ProofSpec.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a ProofSpec message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.ProofSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.ProofSpec} ProofSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProofSpec.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.ProofSpec();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.leafSpec = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 2:\n message.innerSpec = $root.ics23.InnerSpec.decode(reader, reader.uint32());\n break;\n case 3:\n message.maxDepth = reader.int32();\n break;\n case 4:\n message.minDepth = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a ProofSpec message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.ProofSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.ProofSpec} ProofSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n ProofSpec.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a ProofSpec message.\n * @function verify\n * @memberof ics23.ProofSpec\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n ProofSpec.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\")) {\n var error = $root.ics23.LeafOp.verify(message.leafSpec);\n if (error)\n return \"leafSpec.\" + error;\n }\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\")) {\n var error = $root.ics23.InnerSpec.verify(message.innerSpec);\n if (error)\n return \"innerSpec.\" + error;\n }\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n if (!$util.isInteger(message.maxDepth))\n return \"maxDepth: integer expected\";\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n if (!$util.isInteger(message.minDepth))\n return \"minDepth: integer expected\";\n return null;\n };\n\n /**\n * Creates a ProofSpec message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.ProofSpec\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.ProofSpec} ProofSpec\n */\n ProofSpec.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.ProofSpec)\n return object;\n var message = new $root.ics23.ProofSpec();\n if (object.leafSpec != null) {\n if (typeof object.leafSpec !== \"object\")\n throw TypeError(\".ics23.ProofSpec.leafSpec: object expected\");\n message.leafSpec = $root.ics23.LeafOp.fromObject(object.leafSpec);\n }\n if (object.innerSpec != null) {\n if (typeof object.innerSpec !== \"object\")\n throw TypeError(\".ics23.ProofSpec.innerSpec: object expected\");\n message.innerSpec = $root.ics23.InnerSpec.fromObject(object.innerSpec);\n }\n if (object.maxDepth != null)\n message.maxDepth = object.maxDepth | 0;\n if (object.minDepth != null)\n message.minDepth = object.minDepth | 0;\n return message;\n };\n\n /**\n * Creates a plain object from a ProofSpec message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.ProofSpec\n * @static\n * @param {ics23.ProofSpec} message ProofSpec\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n ProofSpec.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n object.leafSpec = null;\n object.innerSpec = null;\n object.maxDepth = 0;\n object.minDepth = 0;\n }\n if (message.leafSpec != null && message.hasOwnProperty(\"leafSpec\"))\n object.leafSpec = $root.ics23.LeafOp.toObject(message.leafSpec, options);\n if (message.innerSpec != null && message.hasOwnProperty(\"innerSpec\"))\n object.innerSpec = $root.ics23.InnerSpec.toObject(message.innerSpec, options);\n if (message.maxDepth != null && message.hasOwnProperty(\"maxDepth\"))\n object.maxDepth = message.maxDepth;\n if (message.minDepth != null && message.hasOwnProperty(\"minDepth\"))\n object.minDepth = message.minDepth;\n return object;\n };\n\n /**\n * Converts this ProofSpec to JSON.\n * @function toJSON\n * @memberof ics23.ProofSpec\n * @instance\n * @returns {Object.} JSON object\n */\n ProofSpec.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return ProofSpec;\n })();\n\n ics23.InnerSpec = (function() {\n\n /**\n * Properties of an InnerSpec.\n * @memberof ics23\n * @interface IInnerSpec\n * @property {Array.|null} [childOrder] InnerSpec childOrder\n * @property {number|null} [childSize] InnerSpec childSize\n * @property {number|null} [minPrefixLength] InnerSpec minPrefixLength\n * @property {number|null} [maxPrefixLength] InnerSpec maxPrefixLength\n * @property {Uint8Array|null} [emptyChild] InnerSpec emptyChild\n * @property {ics23.HashOp|null} [hash] InnerSpec hash\n */\n\n /**\n * Constructs a new InnerSpec.\n * @memberof ics23\n * @classdesc Represents an InnerSpec.\n * @implements IInnerSpec\n * @constructor\n * @param {ics23.IInnerSpec=} [properties] Properties to set\n */\n function InnerSpec(properties) {\n this.childOrder = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * InnerSpec childOrder.\n * @member {Array.} childOrder\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.childOrder = $util.emptyArray;\n\n /**\n * InnerSpec childSize.\n * @member {number} childSize\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.childSize = 0;\n\n /**\n * InnerSpec minPrefixLength.\n * @member {number} minPrefixLength\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.minPrefixLength = 0;\n\n /**\n * InnerSpec maxPrefixLength.\n * @member {number} maxPrefixLength\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.maxPrefixLength = 0;\n\n /**\n * InnerSpec emptyChild.\n * @member {Uint8Array} emptyChild\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.emptyChild = $util.newBuffer([]);\n\n /**\n * InnerSpec hash.\n * @member {ics23.HashOp} hash\n * @memberof ics23.InnerSpec\n * @instance\n */\n InnerSpec.prototype.hash = 0;\n\n /**\n * Creates a new InnerSpec instance using the specified properties.\n * @function create\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec=} [properties] Properties to set\n * @returns {ics23.InnerSpec} InnerSpec instance\n */\n InnerSpec.create = function create(properties) {\n return new InnerSpec(properties);\n };\n\n /**\n * Encodes the specified InnerSpec message. Does not implicitly {@link ics23.InnerSpec.verify|verify} messages.\n * @function encode\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec} message InnerSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerSpec.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.childOrder != null && message.childOrder.length) {\n writer.uint32(/* id 1, wireType 2 =*/10).fork();\n for (var i = 0; i < message.childOrder.length; ++i)\n writer.int32(message.childOrder[i]);\n writer.ldelim();\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n writer.uint32(/* id 2, wireType 0 =*/16).int32(message.childSize);\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n writer.uint32(/* id 3, wireType 0 =*/24).int32(message.minPrefixLength);\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n writer.uint32(/* id 4, wireType 0 =*/32).int32(message.maxPrefixLength);\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n writer.uint32(/* id 5, wireType 2 =*/42).bytes(message.emptyChild);\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n writer.uint32(/* id 6, wireType 0 =*/48).int32(message.hash);\n return writer;\n };\n\n /**\n * Encodes the specified InnerSpec message, length delimited. Does not implicitly {@link ics23.InnerSpec.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.IInnerSpec} message InnerSpec message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n InnerSpec.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes an InnerSpec message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.InnerSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.InnerSpec} InnerSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerSpec.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.InnerSpec();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.childOrder && message.childOrder.length))\n message.childOrder = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.childOrder.push(reader.int32());\n } else\n message.childOrder.push(reader.int32());\n break;\n case 2:\n message.childSize = reader.int32();\n break;\n case 3:\n message.minPrefixLength = reader.int32();\n break;\n case 4:\n message.maxPrefixLength = reader.int32();\n break;\n case 5:\n message.emptyChild = reader.bytes();\n break;\n case 6:\n message.hash = reader.int32();\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes an InnerSpec message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.InnerSpec\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.InnerSpec} InnerSpec\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n InnerSpec.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies an InnerSpec message.\n * @function verify\n * @memberof ics23.InnerSpec\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n InnerSpec.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.childOrder != null && message.hasOwnProperty(\"childOrder\")) {\n if (!Array.isArray(message.childOrder))\n return \"childOrder: array expected\";\n for (var i = 0; i < message.childOrder.length; ++i)\n if (!$util.isInteger(message.childOrder[i]))\n return \"childOrder: integer[] expected\";\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n if (!$util.isInteger(message.childSize))\n return \"childSize: integer expected\";\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n if (!$util.isInteger(message.minPrefixLength))\n return \"minPrefixLength: integer expected\";\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n if (!$util.isInteger(message.maxPrefixLength))\n return \"maxPrefixLength: integer expected\";\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n if (!(message.emptyChild && typeof message.emptyChild.length === \"number\" || $util.isString(message.emptyChild)))\n return \"emptyChild: buffer expected\";\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n switch (message.hash) {\n default:\n return \"hash: enum value expected\";\n case 0:\n case 1:\n case 2:\n case 3:\n case 4:\n case 5:\n case 6:\n break;\n }\n return null;\n };\n\n /**\n * Creates an InnerSpec message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.InnerSpec\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.InnerSpec} InnerSpec\n */\n InnerSpec.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.InnerSpec)\n return object;\n var message = new $root.ics23.InnerSpec();\n if (object.childOrder) {\n if (!Array.isArray(object.childOrder))\n throw TypeError(\".ics23.InnerSpec.childOrder: array expected\");\n message.childOrder = [];\n for (var i = 0; i < object.childOrder.length; ++i)\n message.childOrder[i] = object.childOrder[i] | 0;\n }\n if (object.childSize != null)\n message.childSize = object.childSize | 0;\n if (object.minPrefixLength != null)\n message.minPrefixLength = object.minPrefixLength | 0;\n if (object.maxPrefixLength != null)\n message.maxPrefixLength = object.maxPrefixLength | 0;\n if (object.emptyChild != null)\n if (typeof object.emptyChild === \"string\")\n $util.base64.decode(object.emptyChild, message.emptyChild = $util.newBuffer($util.base64.length(object.emptyChild)), 0);\n else if (object.emptyChild.length)\n message.emptyChild = object.emptyChild;\n switch (object.hash) {\n case \"NO_HASH\":\n case 0:\n message.hash = 0;\n break;\n case \"SHA256\":\n case 1:\n message.hash = 1;\n break;\n case \"SHA512\":\n case 2:\n message.hash = 2;\n break;\n case \"KECCAK\":\n case 3:\n message.hash = 3;\n break;\n case \"RIPEMD160\":\n case 4:\n message.hash = 4;\n break;\n case \"BITCOIN\":\n case 5:\n message.hash = 5;\n break;\n case \"SHA512_256\":\n case 6:\n message.hash = 6;\n break;\n }\n return message;\n };\n\n /**\n * Creates a plain object from an InnerSpec message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.InnerSpec\n * @static\n * @param {ics23.InnerSpec} message InnerSpec\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n InnerSpec.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.childOrder = [];\n if (options.defaults) {\n object.childSize = 0;\n object.minPrefixLength = 0;\n object.maxPrefixLength = 0;\n if (options.bytes === String)\n object.emptyChild = \"\";\n else {\n object.emptyChild = [];\n if (options.bytes !== Array)\n object.emptyChild = $util.newBuffer(object.emptyChild);\n }\n object.hash = options.enums === String ? \"NO_HASH\" : 0;\n }\n if (message.childOrder && message.childOrder.length) {\n object.childOrder = [];\n for (var j = 0; j < message.childOrder.length; ++j)\n object.childOrder[j] = message.childOrder[j];\n }\n if (message.childSize != null && message.hasOwnProperty(\"childSize\"))\n object.childSize = message.childSize;\n if (message.minPrefixLength != null && message.hasOwnProperty(\"minPrefixLength\"))\n object.minPrefixLength = message.minPrefixLength;\n if (message.maxPrefixLength != null && message.hasOwnProperty(\"maxPrefixLength\"))\n object.maxPrefixLength = message.maxPrefixLength;\n if (message.emptyChild != null && message.hasOwnProperty(\"emptyChild\"))\n object.emptyChild = options.bytes === String ? $util.base64.encode(message.emptyChild, 0, message.emptyChild.length) : options.bytes === Array ? Array.prototype.slice.call(message.emptyChild) : message.emptyChild;\n if (message.hash != null && message.hasOwnProperty(\"hash\"))\n object.hash = options.enums === String ? $root.ics23.HashOp[message.hash] : message.hash;\n return object;\n };\n\n /**\n * Converts this InnerSpec to JSON.\n * @function toJSON\n * @memberof ics23.InnerSpec\n * @instance\n * @returns {Object.} JSON object\n */\n InnerSpec.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return InnerSpec;\n })();\n\n ics23.BatchProof = (function() {\n\n /**\n * Properties of a BatchProof.\n * @memberof ics23\n * @interface IBatchProof\n * @property {Array.|null} [entries] BatchProof entries\n */\n\n /**\n * Constructs a new BatchProof.\n * @memberof ics23\n * @classdesc Represents a BatchProof.\n * @implements IBatchProof\n * @constructor\n * @param {ics23.IBatchProof=} [properties] Properties to set\n */\n function BatchProof(properties) {\n this.entries = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BatchProof entries.\n * @member {Array.} entries\n * @memberof ics23.BatchProof\n * @instance\n */\n BatchProof.prototype.entries = $util.emptyArray;\n\n /**\n * Creates a new BatchProof instance using the specified properties.\n * @function create\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof=} [properties] Properties to set\n * @returns {ics23.BatchProof} BatchProof instance\n */\n BatchProof.create = function create(properties) {\n return new BatchProof(properties);\n };\n\n /**\n * Encodes the specified BatchProof message. Does not implicitly {@link ics23.BatchProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof} message BatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.entries != null && message.entries.length)\n for (var i = 0; i < message.entries.length; ++i)\n $root.ics23.BatchEntry.encode(message.entries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified BatchProof message, length delimited. Does not implicitly {@link ics23.BatchProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.IBatchProof} message BatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BatchProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.BatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.BatchProof} BatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.BatchProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.entries && message.entries.length))\n message.entries = [];\n message.entries.push($root.ics23.BatchEntry.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BatchProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.BatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.BatchProof} BatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BatchProof message.\n * @function verify\n * @memberof ics23.BatchProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BatchProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.entries != null && message.hasOwnProperty(\"entries\")) {\n if (!Array.isArray(message.entries))\n return \"entries: array expected\";\n for (var i = 0; i < message.entries.length; ++i) {\n var error = $root.ics23.BatchEntry.verify(message.entries[i]);\n if (error)\n return \"entries.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a BatchProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.BatchProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.BatchProof} BatchProof\n */\n BatchProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.BatchProof)\n return object;\n var message = new $root.ics23.BatchProof();\n if (object.entries) {\n if (!Array.isArray(object.entries))\n throw TypeError(\".ics23.BatchProof.entries: array expected\");\n message.entries = [];\n for (var i = 0; i < object.entries.length; ++i) {\n if (typeof object.entries[i] !== \"object\")\n throw TypeError(\".ics23.BatchProof.entries: object expected\");\n message.entries[i] = $root.ics23.BatchEntry.fromObject(object.entries[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a BatchProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.BatchProof\n * @static\n * @param {ics23.BatchProof} message BatchProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n BatchProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.entries = [];\n if (message.entries && message.entries.length) {\n object.entries = [];\n for (var j = 0; j < message.entries.length; ++j)\n object.entries[j] = $root.ics23.BatchEntry.toObject(message.entries[j], options);\n }\n return object;\n };\n\n /**\n * Converts this BatchProof to JSON.\n * @function toJSON\n * @memberof ics23.BatchProof\n * @instance\n * @returns {Object.} JSON object\n */\n BatchProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BatchProof;\n })();\n\n ics23.BatchEntry = (function() {\n\n /**\n * Properties of a BatchEntry.\n * @memberof ics23\n * @interface IBatchEntry\n * @property {ics23.IExistenceProof|null} [exist] BatchEntry exist\n * @property {ics23.INonExistenceProof|null} [nonexist] BatchEntry nonexist\n */\n\n /**\n * Constructs a new BatchEntry.\n * @memberof ics23\n * @classdesc Represents a BatchEntry.\n * @implements IBatchEntry\n * @constructor\n * @param {ics23.IBatchEntry=} [properties] Properties to set\n */\n function BatchEntry(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * BatchEntry exist.\n * @member {ics23.IExistenceProof|null|undefined} exist\n * @memberof ics23.BatchEntry\n * @instance\n */\n BatchEntry.prototype.exist = null;\n\n /**\n * BatchEntry nonexist.\n * @member {ics23.INonExistenceProof|null|undefined} nonexist\n * @memberof ics23.BatchEntry\n * @instance\n */\n BatchEntry.prototype.nonexist = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * BatchEntry proof.\n * @member {\"exist\"|\"nonexist\"|undefined} proof\n * @memberof ics23.BatchEntry\n * @instance\n */\n Object.defineProperty(BatchEntry.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new BatchEntry instance using the specified properties.\n * @function create\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry=} [properties] Properties to set\n * @returns {ics23.BatchEntry} BatchEntry instance\n */\n BatchEntry.create = function create(properties) {\n return new BatchEntry(properties);\n };\n\n /**\n * Encodes the specified BatchEntry message. Does not implicitly {@link ics23.BatchEntry.verify|verify} messages.\n * @function encode\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry} message BatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchEntry.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.ExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.NonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified BatchEntry message, length delimited. Does not implicitly {@link ics23.BatchEntry.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.IBatchEntry} message BatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n BatchEntry.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a BatchEntry message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.BatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.BatchEntry} BatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchEntry.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.BatchEntry();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.ExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.NonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a BatchEntry message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.BatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.BatchEntry} BatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n BatchEntry.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a BatchEntry message.\n * @function verify\n * @memberof ics23.BatchEntry\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n BatchEntry.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.ExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.NonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a BatchEntry message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.BatchEntry\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.BatchEntry} BatchEntry\n */\n BatchEntry.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.BatchEntry)\n return object;\n var message = new $root.ics23.BatchEntry();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.BatchEntry.exist: object expected\");\n message.exist = $root.ics23.ExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.BatchEntry.nonexist: object expected\");\n message.nonexist = $root.ics23.NonExistenceProof.fromObject(object.nonexist);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a BatchEntry message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.BatchEntry\n * @static\n * @param {ics23.BatchEntry} message BatchEntry\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n BatchEntry.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.ExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.NonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n return object;\n };\n\n /**\n * Converts this BatchEntry to JSON.\n * @function toJSON\n * @memberof ics23.BatchEntry\n * @instance\n * @returns {Object.} JSON object\n */\n BatchEntry.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return BatchEntry;\n })();\n\n ics23.CompressedBatchProof = (function() {\n\n /**\n * Properties of a CompressedBatchProof.\n * @memberof ics23\n * @interface ICompressedBatchProof\n * @property {Array.|null} [entries] CompressedBatchProof entries\n * @property {Array.|null} [lookupInners] CompressedBatchProof lookupInners\n */\n\n /**\n * Constructs a new CompressedBatchProof.\n * @memberof ics23\n * @classdesc Represents a CompressedBatchProof.\n * @implements ICompressedBatchProof\n * @constructor\n * @param {ics23.ICompressedBatchProof=} [properties] Properties to set\n */\n function CompressedBatchProof(properties) {\n this.entries = [];\n this.lookupInners = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedBatchProof entries.\n * @member {Array.} entries\n * @memberof ics23.CompressedBatchProof\n * @instance\n */\n CompressedBatchProof.prototype.entries = $util.emptyArray;\n\n /**\n * CompressedBatchProof lookupInners.\n * @member {Array.} lookupInners\n * @memberof ics23.CompressedBatchProof\n * @instance\n */\n CompressedBatchProof.prototype.lookupInners = $util.emptyArray;\n\n /**\n * Creates a new CompressedBatchProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof=} [properties] Properties to set\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof instance\n */\n CompressedBatchProof.create = function create(properties) {\n return new CompressedBatchProof(properties);\n };\n\n /**\n * Encodes the specified CompressedBatchProof message. Does not implicitly {@link ics23.CompressedBatchProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof} message CompressedBatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.entries != null && message.entries.length)\n for (var i = 0; i < message.entries.length; ++i)\n $root.ics23.CompressedBatchEntry.encode(message.entries[i], writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.lookupInners != null && message.lookupInners.length)\n for (var i = 0; i < message.lookupInners.length; ++i)\n $root.ics23.InnerOp.encode(message.lookupInners[i], writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedBatchProof message, length delimited. Does not implicitly {@link ics23.CompressedBatchProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.ICompressedBatchProof} message CompressedBatchProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedBatchProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedBatchProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n if (!(message.entries && message.entries.length))\n message.entries = [];\n message.entries.push($root.ics23.CompressedBatchEntry.decode(reader, reader.uint32()));\n break;\n case 2:\n if (!(message.lookupInners && message.lookupInners.length))\n message.lookupInners = [];\n message.lookupInners.push($root.ics23.InnerOp.decode(reader, reader.uint32()));\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedBatchProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedBatchProof message.\n * @function verify\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedBatchProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.entries != null && message.hasOwnProperty(\"entries\")) {\n if (!Array.isArray(message.entries))\n return \"entries: array expected\";\n for (var i = 0; i < message.entries.length; ++i) {\n var error = $root.ics23.CompressedBatchEntry.verify(message.entries[i]);\n if (error)\n return \"entries.\" + error;\n }\n }\n if (message.lookupInners != null && message.hasOwnProperty(\"lookupInners\")) {\n if (!Array.isArray(message.lookupInners))\n return \"lookupInners: array expected\";\n for (var i = 0; i < message.lookupInners.length; ++i) {\n var error = $root.ics23.InnerOp.verify(message.lookupInners[i]);\n if (error)\n return \"lookupInners.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CompressedBatchProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedBatchProof} CompressedBatchProof\n */\n CompressedBatchProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedBatchProof)\n return object;\n var message = new $root.ics23.CompressedBatchProof();\n if (object.entries) {\n if (!Array.isArray(object.entries))\n throw TypeError(\".ics23.CompressedBatchProof.entries: array expected\");\n message.entries = [];\n for (var i = 0; i < object.entries.length; ++i) {\n if (typeof object.entries[i] !== \"object\")\n throw TypeError(\".ics23.CompressedBatchProof.entries: object expected\");\n message.entries[i] = $root.ics23.CompressedBatchEntry.fromObject(object.entries[i]);\n }\n }\n if (object.lookupInners) {\n if (!Array.isArray(object.lookupInners))\n throw TypeError(\".ics23.CompressedBatchProof.lookupInners: array expected\");\n message.lookupInners = [];\n for (var i = 0; i < object.lookupInners.length; ++i) {\n if (typeof object.lookupInners[i] !== \"object\")\n throw TypeError(\".ics23.CompressedBatchProof.lookupInners: object expected\");\n message.lookupInners[i] = $root.ics23.InnerOp.fromObject(object.lookupInners[i]);\n }\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedBatchProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedBatchProof\n * @static\n * @param {ics23.CompressedBatchProof} message CompressedBatchProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedBatchProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults) {\n object.entries = [];\n object.lookupInners = [];\n }\n if (message.entries && message.entries.length) {\n object.entries = [];\n for (var j = 0; j < message.entries.length; ++j)\n object.entries[j] = $root.ics23.CompressedBatchEntry.toObject(message.entries[j], options);\n }\n if (message.lookupInners && message.lookupInners.length) {\n object.lookupInners = [];\n for (var j = 0; j < message.lookupInners.length; ++j)\n object.lookupInners[j] = $root.ics23.InnerOp.toObject(message.lookupInners[j], options);\n }\n return object;\n };\n\n /**\n * Converts this CompressedBatchProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedBatchProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedBatchProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedBatchProof;\n })();\n\n ics23.CompressedBatchEntry = (function() {\n\n /**\n * Properties of a CompressedBatchEntry.\n * @memberof ics23\n * @interface ICompressedBatchEntry\n * @property {ics23.ICompressedExistenceProof|null} [exist] CompressedBatchEntry exist\n * @property {ics23.ICompressedNonExistenceProof|null} [nonexist] CompressedBatchEntry nonexist\n */\n\n /**\n * Constructs a new CompressedBatchEntry.\n * @memberof ics23\n * @classdesc Represents a CompressedBatchEntry.\n * @implements ICompressedBatchEntry\n * @constructor\n * @param {ics23.ICompressedBatchEntry=} [properties] Properties to set\n */\n function CompressedBatchEntry(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedBatchEntry exist.\n * @member {ics23.ICompressedExistenceProof|null|undefined} exist\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n CompressedBatchEntry.prototype.exist = null;\n\n /**\n * CompressedBatchEntry nonexist.\n * @member {ics23.ICompressedNonExistenceProof|null|undefined} nonexist\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n CompressedBatchEntry.prototype.nonexist = null;\n\n // OneOf field names bound to virtual getters and setters\n var $oneOfFields;\n\n /**\n * CompressedBatchEntry proof.\n * @member {\"exist\"|\"nonexist\"|undefined} proof\n * @memberof ics23.CompressedBatchEntry\n * @instance\n */\n Object.defineProperty(CompressedBatchEntry.prototype, \"proof\", {\n get: $util.oneOfGetter($oneOfFields = [\"exist\", \"nonexist\"]),\n set: $util.oneOfSetter($oneOfFields)\n });\n\n /**\n * Creates a new CompressedBatchEntry instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry=} [properties] Properties to set\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry instance\n */\n CompressedBatchEntry.create = function create(properties) {\n return new CompressedBatchEntry(properties);\n };\n\n /**\n * Encodes the specified CompressedBatchEntry message. Does not implicitly {@link ics23.CompressedBatchEntry.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry} message CompressedBatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchEntry.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.exist != null && message.hasOwnProperty(\"exist\"))\n $root.ics23.CompressedExistenceProof.encode(message.exist, writer.uint32(/* id 1, wireType 2 =*/10).fork()).ldelim();\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\"))\n $root.ics23.CompressedNonExistenceProof.encode(message.nonexist, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedBatchEntry message, length delimited. Does not implicitly {@link ics23.CompressedBatchEntry.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.ICompressedBatchEntry} message CompressedBatchEntry message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedBatchEntry.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedBatchEntry message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchEntry.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedBatchEntry();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.exist = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 2:\n message.nonexist = $root.ics23.CompressedNonExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedBatchEntry message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedBatchEntry.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedBatchEntry message.\n * @function verify\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedBatchEntry.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n var properties = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedExistenceProof.verify(message.exist);\n if (error)\n return \"exist.\" + error;\n }\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n if (properties.proof === 1)\n return \"proof: multiple values\";\n properties.proof = 1;\n {\n var error = $root.ics23.CompressedNonExistenceProof.verify(message.nonexist);\n if (error)\n return \"nonexist.\" + error;\n }\n }\n return null;\n };\n\n /**\n * Creates a CompressedBatchEntry message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedBatchEntry} CompressedBatchEntry\n */\n CompressedBatchEntry.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedBatchEntry)\n return object;\n var message = new $root.ics23.CompressedBatchEntry();\n if (object.exist != null) {\n if (typeof object.exist !== \"object\")\n throw TypeError(\".ics23.CompressedBatchEntry.exist: object expected\");\n message.exist = $root.ics23.CompressedExistenceProof.fromObject(object.exist);\n }\n if (object.nonexist != null) {\n if (typeof object.nonexist !== \"object\")\n throw TypeError(\".ics23.CompressedBatchEntry.nonexist: object expected\");\n message.nonexist = $root.ics23.CompressedNonExistenceProof.fromObject(object.nonexist);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedBatchEntry message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedBatchEntry\n * @static\n * @param {ics23.CompressedBatchEntry} message CompressedBatchEntry\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedBatchEntry.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (message.exist != null && message.hasOwnProperty(\"exist\")) {\n object.exist = $root.ics23.CompressedExistenceProof.toObject(message.exist, options);\n if (options.oneofs)\n object.proof = \"exist\";\n }\n if (message.nonexist != null && message.hasOwnProperty(\"nonexist\")) {\n object.nonexist = $root.ics23.CompressedNonExistenceProof.toObject(message.nonexist, options);\n if (options.oneofs)\n object.proof = \"nonexist\";\n }\n return object;\n };\n\n /**\n * Converts this CompressedBatchEntry to JSON.\n * @function toJSON\n * @memberof ics23.CompressedBatchEntry\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedBatchEntry.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedBatchEntry;\n })();\n\n ics23.CompressedExistenceProof = (function() {\n\n /**\n * Properties of a CompressedExistenceProof.\n * @memberof ics23\n * @interface ICompressedExistenceProof\n * @property {Uint8Array|null} [key] CompressedExistenceProof key\n * @property {Uint8Array|null} [value] CompressedExistenceProof value\n * @property {ics23.ILeafOp|null} [leaf] CompressedExistenceProof leaf\n * @property {Array.|null} [path] CompressedExistenceProof path\n */\n\n /**\n * Constructs a new CompressedExistenceProof.\n * @memberof ics23\n * @classdesc Represents a CompressedExistenceProof.\n * @implements ICompressedExistenceProof\n * @constructor\n * @param {ics23.ICompressedExistenceProof=} [properties] Properties to set\n */\n function CompressedExistenceProof(properties) {\n this.path = [];\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * CompressedExistenceProof value.\n * @member {Uint8Array} value\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.value = $util.newBuffer([]);\n\n /**\n * CompressedExistenceProof leaf.\n * @member {ics23.ILeafOp|null|undefined} leaf\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.leaf = null;\n\n /**\n * CompressedExistenceProof path.\n * @member {Array.} path\n * @memberof ics23.CompressedExistenceProof\n * @instance\n */\n CompressedExistenceProof.prototype.path = $util.emptyArray;\n\n /**\n * Creates a new CompressedExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof=} [properties] Properties to set\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof instance\n */\n CompressedExistenceProof.create = function create(properties) {\n return new CompressedExistenceProof(properties);\n };\n\n /**\n * Encodes the specified CompressedExistenceProof message. Does not implicitly {@link ics23.CompressedExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof} message CompressedExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.value != null && message.hasOwnProperty(\"value\"))\n writer.uint32(/* id 2, wireType 2 =*/18).bytes(message.value);\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n $root.ics23.LeafOp.encode(message.leaf, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n if (message.path != null && message.path.length) {\n writer.uint32(/* id 4, wireType 2 =*/34).fork();\n for (var i = 0; i < message.path.length; ++i)\n writer.int32(message.path[i]);\n writer.ldelim();\n }\n return writer;\n };\n\n /**\n * Encodes the specified CompressedExistenceProof message, length delimited. Does not implicitly {@link ics23.CompressedExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.ICompressedExistenceProof} message CompressedExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.value = reader.bytes();\n break;\n case 3:\n message.leaf = $root.ics23.LeafOp.decode(reader, reader.uint32());\n break;\n case 4:\n if (!(message.path && message.path.length))\n message.path = [];\n if ((tag & 7) === 2) {\n var end2 = reader.uint32() + reader.pos;\n while (reader.pos < end2)\n message.path.push(reader.int32());\n } else\n message.path.push(reader.int32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedExistenceProof message.\n * @function verify\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.value != null && message.hasOwnProperty(\"value\"))\n if (!(message.value && typeof message.value.length === \"number\" || $util.isString(message.value)))\n return \"value: buffer expected\";\n if (message.leaf != null && message.hasOwnProperty(\"leaf\")) {\n var error = $root.ics23.LeafOp.verify(message.leaf);\n if (error)\n return \"leaf.\" + error;\n }\n if (message.path != null && message.hasOwnProperty(\"path\")) {\n if (!Array.isArray(message.path))\n return \"path: array expected\";\n for (var i = 0; i < message.path.length; ++i)\n if (!$util.isInteger(message.path[i]))\n return \"path: integer[] expected\";\n }\n return null;\n };\n\n /**\n * Creates a CompressedExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedExistenceProof} CompressedExistenceProof\n */\n CompressedExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedExistenceProof)\n return object;\n var message = new $root.ics23.CompressedExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.value != null)\n if (typeof object.value === \"string\")\n $util.base64.decode(object.value, message.value = $util.newBuffer($util.base64.length(object.value)), 0);\n else if (object.value.length)\n message.value = object.value;\n if (object.leaf != null) {\n if (typeof object.leaf !== \"object\")\n throw TypeError(\".ics23.CompressedExistenceProof.leaf: object expected\");\n message.leaf = $root.ics23.LeafOp.fromObject(object.leaf);\n }\n if (object.path) {\n if (!Array.isArray(object.path))\n throw TypeError(\".ics23.CompressedExistenceProof.path: array expected\");\n message.path = [];\n for (var i = 0; i < object.path.length; ++i)\n message.path[i] = object.path[i] | 0;\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedExistenceProof\n * @static\n * @param {ics23.CompressedExistenceProof} message CompressedExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.arrays || options.defaults)\n object.path = [];\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n if (options.bytes === String)\n object.value = \"\";\n else {\n object.value = [];\n if (options.bytes !== Array)\n object.value = $util.newBuffer(object.value);\n }\n object.leaf = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.value != null && message.hasOwnProperty(\"value\"))\n object.value = options.bytes === String ? $util.base64.encode(message.value, 0, message.value.length) : options.bytes === Array ? Array.prototype.slice.call(message.value) : message.value;\n if (message.leaf != null && message.hasOwnProperty(\"leaf\"))\n object.leaf = $root.ics23.LeafOp.toObject(message.leaf, options);\n if (message.path && message.path.length) {\n object.path = [];\n for (var j = 0; j < message.path.length; ++j)\n object.path[j] = message.path[j];\n }\n return object;\n };\n\n /**\n * Converts this CompressedExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedExistenceProof;\n })();\n\n ics23.CompressedNonExistenceProof = (function() {\n\n /**\n * Properties of a CompressedNonExistenceProof.\n * @memberof ics23\n * @interface ICompressedNonExistenceProof\n * @property {Uint8Array|null} [key] CompressedNonExistenceProof key\n * @property {ics23.ICompressedExistenceProof|null} [left] CompressedNonExistenceProof left\n * @property {ics23.ICompressedExistenceProof|null} [right] CompressedNonExistenceProof right\n */\n\n /**\n * Constructs a new CompressedNonExistenceProof.\n * @memberof ics23\n * @classdesc Represents a CompressedNonExistenceProof.\n * @implements ICompressedNonExistenceProof\n * @constructor\n * @param {ics23.ICompressedNonExistenceProof=} [properties] Properties to set\n */\n function CompressedNonExistenceProof(properties) {\n if (properties)\n for (var keys = Object.keys(properties), i = 0; i < keys.length; ++i)\n if (properties[keys[i]] != null)\n this[keys[i]] = properties[keys[i]];\n }\n\n /**\n * CompressedNonExistenceProof key.\n * @member {Uint8Array} key\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.key = $util.newBuffer([]);\n\n /**\n * CompressedNonExistenceProof left.\n * @member {ics23.ICompressedExistenceProof|null|undefined} left\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.left = null;\n\n /**\n * CompressedNonExistenceProof right.\n * @member {ics23.ICompressedExistenceProof|null|undefined} right\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n */\n CompressedNonExistenceProof.prototype.right = null;\n\n /**\n * Creates a new CompressedNonExistenceProof instance using the specified properties.\n * @function create\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof=} [properties] Properties to set\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof instance\n */\n CompressedNonExistenceProof.create = function create(properties) {\n return new CompressedNonExistenceProof(properties);\n };\n\n /**\n * Encodes the specified CompressedNonExistenceProof message. Does not implicitly {@link ics23.CompressedNonExistenceProof.verify|verify} messages.\n * @function encode\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof} message CompressedNonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedNonExistenceProof.encode = function encode(message, writer) {\n if (!writer)\n writer = $Writer.create();\n if (message.key != null && message.hasOwnProperty(\"key\"))\n writer.uint32(/* id 1, wireType 2 =*/10).bytes(message.key);\n if (message.left != null && message.hasOwnProperty(\"left\"))\n $root.ics23.CompressedExistenceProof.encode(message.left, writer.uint32(/* id 2, wireType 2 =*/18).fork()).ldelim();\n if (message.right != null && message.hasOwnProperty(\"right\"))\n $root.ics23.CompressedExistenceProof.encode(message.right, writer.uint32(/* id 3, wireType 2 =*/26).fork()).ldelim();\n return writer;\n };\n\n /**\n * Encodes the specified CompressedNonExistenceProof message, length delimited. Does not implicitly {@link ics23.CompressedNonExistenceProof.verify|verify} messages.\n * @function encodeDelimited\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.ICompressedNonExistenceProof} message CompressedNonExistenceProof message or plain object to encode\n * @param {$protobuf.Writer} [writer] Writer to encode to\n * @returns {$protobuf.Writer} Writer\n */\n CompressedNonExistenceProof.encodeDelimited = function encodeDelimited(message, writer) {\n return this.encode(message, writer).ldelim();\n };\n\n /**\n * Decodes a CompressedNonExistenceProof message from the specified reader or buffer.\n * @function decode\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @param {number} [length] Message length if known beforehand\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedNonExistenceProof.decode = function decode(reader, length) {\n if (!(reader instanceof $Reader))\n reader = $Reader.create(reader);\n var end = length === undefined ? reader.len : reader.pos + length, message = new $root.ics23.CompressedNonExistenceProof();\n while (reader.pos < end) {\n var tag = reader.uint32();\n switch (tag >>> 3) {\n case 1:\n message.key = reader.bytes();\n break;\n case 2:\n message.left = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n case 3:\n message.right = $root.ics23.CompressedExistenceProof.decode(reader, reader.uint32());\n break;\n default:\n reader.skipType(tag & 7);\n break;\n }\n }\n return message;\n };\n\n /**\n * Decodes a CompressedNonExistenceProof message from the specified reader or buffer, length delimited.\n * @function decodeDelimited\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {$protobuf.Reader|Uint8Array} reader Reader or buffer to decode from\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n * @throws {Error} If the payload is not a reader or valid buffer\n * @throws {$protobuf.util.ProtocolError} If required fields are missing\n */\n CompressedNonExistenceProof.decodeDelimited = function decodeDelimited(reader) {\n if (!(reader instanceof $Reader))\n reader = new $Reader(reader);\n return this.decode(reader, reader.uint32());\n };\n\n /**\n * Verifies a CompressedNonExistenceProof message.\n * @function verify\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {Object.} message Plain object to verify\n * @returns {string|null} `null` if valid, otherwise the reason why it is not\n */\n CompressedNonExistenceProof.verify = function verify(message) {\n if (typeof message !== \"object\" || message === null)\n return \"object expected\";\n if (message.key != null && message.hasOwnProperty(\"key\"))\n if (!(message.key && typeof message.key.length === \"number\" || $util.isString(message.key)))\n return \"key: buffer expected\";\n if (message.left != null && message.hasOwnProperty(\"left\")) {\n var error = $root.ics23.CompressedExistenceProof.verify(message.left);\n if (error)\n return \"left.\" + error;\n }\n if (message.right != null && message.hasOwnProperty(\"right\")) {\n var error = $root.ics23.CompressedExistenceProof.verify(message.right);\n if (error)\n return \"right.\" + error;\n }\n return null;\n };\n\n /**\n * Creates a CompressedNonExistenceProof message from a plain object. Also converts values to their respective internal types.\n * @function fromObject\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {Object.} object Plain object\n * @returns {ics23.CompressedNonExistenceProof} CompressedNonExistenceProof\n */\n CompressedNonExistenceProof.fromObject = function fromObject(object) {\n if (object instanceof $root.ics23.CompressedNonExistenceProof)\n return object;\n var message = new $root.ics23.CompressedNonExistenceProof();\n if (object.key != null)\n if (typeof object.key === \"string\")\n $util.base64.decode(object.key, message.key = $util.newBuffer($util.base64.length(object.key)), 0);\n else if (object.key.length)\n message.key = object.key;\n if (object.left != null) {\n if (typeof object.left !== \"object\")\n throw TypeError(\".ics23.CompressedNonExistenceProof.left: object expected\");\n message.left = $root.ics23.CompressedExistenceProof.fromObject(object.left);\n }\n if (object.right != null) {\n if (typeof object.right !== \"object\")\n throw TypeError(\".ics23.CompressedNonExistenceProof.right: object expected\");\n message.right = $root.ics23.CompressedExistenceProof.fromObject(object.right);\n }\n return message;\n };\n\n /**\n * Creates a plain object from a CompressedNonExistenceProof message. Also converts values to other types if specified.\n * @function toObject\n * @memberof ics23.CompressedNonExistenceProof\n * @static\n * @param {ics23.CompressedNonExistenceProof} message CompressedNonExistenceProof\n * @param {$protobuf.IConversionOptions} [options] Conversion options\n * @returns {Object.} Plain object\n */\n CompressedNonExistenceProof.toObject = function toObject(message, options) {\n if (!options)\n options = {};\n var object = {};\n if (options.defaults) {\n if (options.bytes === String)\n object.key = \"\";\n else {\n object.key = [];\n if (options.bytes !== Array)\n object.key = $util.newBuffer(object.key);\n }\n object.left = null;\n object.right = null;\n }\n if (message.key != null && message.hasOwnProperty(\"key\"))\n object.key = options.bytes === String ? $util.base64.encode(message.key, 0, message.key.length) : options.bytes === Array ? Array.prototype.slice.call(message.key) : message.key;\n if (message.left != null && message.hasOwnProperty(\"left\"))\n object.left = $root.ics23.CompressedExistenceProof.toObject(message.left, options);\n if (message.right != null && message.hasOwnProperty(\"right\"))\n object.right = $root.ics23.CompressedExistenceProof.toObject(message.right, options);\n return object;\n };\n\n /**\n * Converts this CompressedNonExistenceProof to JSON.\n * @function toJSON\n * @memberof ics23.CompressedNonExistenceProof\n * @instance\n * @returns {Object.} JSON object\n */\n CompressedNonExistenceProof.prototype.toJSON = function toJSON() {\n return this.constructor.toObject(this, $protobuf.util.toJSONOptions);\n };\n\n return CompressedNonExistenceProof;\n })();\n\n return ics23;\n})();\n\nmodule.exports = $root;\n", null, "/**\n * Internal webcrypto alias.\n * We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n * See utils.ts for details.\n * @module\n */\ndeclare const globalThis: Record | undefined;\nexport const crypto: any =\n typeof globalThis === 'object' && 'crypto' in globalThis ? globalThis.crypto : undefined;\n", "/**\n * Utilities for hex, bytes, CSPRNG.\n * @module\n */\n/*! noble-hashes - MIT License (c) 2022 Paul Miller (paulmillr.com) */\n\n// We use WebCrypto aka globalThis.crypto, which exists in browsers and node.js 16+.\n// node.js versions earlier than v19 don't declare it in global scope.\n// For node.js, package.json#exports field mapping rewrites import\n// from `crypto` to `cryptoNode`, which imports native module.\n// Makes the utils un-importable in browsers without a bundler.\n// Once node.js 18 is deprecated (2025-04-30), we can just drop the import.\nimport { crypto } from '@noble/hashes/crypto';\n\n/** Checks if something is Uint8Array. Be careful: nodejs Buffer will return true. */\nexport function isBytes(a: unknown): a is Uint8Array {\n return a instanceof Uint8Array || (ArrayBuffer.isView(a) && a.constructor.name === 'Uint8Array');\n}\n\n/** Asserts something is positive integer. */\nexport function anumber(n: number): void {\n if (!Number.isSafeInteger(n) || n < 0) throw new Error('positive integer expected, got ' + n);\n}\n\n/** Asserts something is Uint8Array. */\nexport function abytes(b: Uint8Array | undefined, ...lengths: number[]): void {\n if (!isBytes(b)) throw new Error('Uint8Array expected');\n if (lengths.length > 0 && !lengths.includes(b.length))\n throw new Error('Uint8Array expected of length ' + lengths + ', got length=' + b.length);\n}\n\n/** Asserts something is hash */\nexport function ahash(h: IHash): void {\n if (typeof h !== 'function' || typeof h.create !== 'function')\n throw new Error('Hash should be wrapped by utils.createHasher');\n anumber(h.outputLen);\n anumber(h.blockLen);\n}\n\n/** Asserts a hash instance has not been destroyed / finished */\nexport function aexists(instance: any, checkFinished = true): void {\n if (instance.destroyed) throw new Error('Hash instance has been destroyed');\n if (checkFinished && instance.finished) throw new Error('Hash#digest() has already been called');\n}\n\n/** Asserts output is properly-sized byte array */\nexport function aoutput(out: any, instance: any): void {\n abytes(out);\n const min = instance.outputLen;\n if (out.length < min) {\n throw new Error('digestInto() expects output buffer of length at least ' + min);\n }\n}\n\n/** Generic type encompassing 8/16/32-byte arrays - but not 64-byte. */\n// prettier-ignore\nexport type TypedArray = Int8Array | Uint8ClampedArray | Uint8Array |\n Uint16Array | Int16Array | Uint32Array | Int32Array;\n\n/** Cast u8 / u16 / u32 to u8. */\nexport function u8(arr: TypedArray): Uint8Array {\n return new Uint8Array(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n\n/** Cast u8 / u16 / u32 to u32. */\nexport function u32(arr: TypedArray): Uint32Array {\n return new Uint32Array(arr.buffer, arr.byteOffset, Math.floor(arr.byteLength / 4));\n}\n\n/** Zeroize a byte array. Warning: JS provides no guarantees. */\nexport function clean(...arrays: TypedArray[]): void {\n for (let i = 0; i < arrays.length; i++) {\n arrays[i].fill(0);\n }\n}\n\n/** Create DataView of an array for easy byte-level manipulation. */\nexport function createView(arr: TypedArray): DataView {\n return new DataView(arr.buffer, arr.byteOffset, arr.byteLength);\n}\n\n/** The rotate right (circular right shift) operation for uint32 */\nexport function rotr(word: number, shift: number): number {\n return (word << (32 - shift)) | (word >>> shift);\n}\n\n/** The rotate left (circular left shift) operation for uint32 */\nexport function rotl(word: number, shift: number): number {\n return (word << shift) | ((word >>> (32 - shift)) >>> 0);\n}\n\n/** Is current platform little-endian? Most are. Big-Endian platform: IBM */\nexport const isLE: boolean = /* @__PURE__ */ (() =>\n new Uint8Array(new Uint32Array([0x11223344]).buffer)[0] === 0x44)();\n\n/** The byte swap operation for uint32 */\nexport function byteSwap(word: number): number {\n return (\n ((word << 24) & 0xff000000) |\n ((word << 8) & 0xff0000) |\n ((word >>> 8) & 0xff00) |\n ((word >>> 24) & 0xff)\n );\n}\n/** Conditionally byte swap if on a big-endian platform */\nexport const swap8IfBE: (n: number) => number = isLE\n ? (n: number) => n\n : (n: number) => byteSwap(n);\n\n/** @deprecated */\nexport const byteSwapIfBE: typeof swap8IfBE = swap8IfBE;\n/** In place byte swap for Uint32Array */\nexport function byteSwap32(arr: Uint32Array): Uint32Array {\n for (let i = 0; i < arr.length; i++) {\n arr[i] = byteSwap(arr[i]);\n }\n return arr;\n}\n\nexport const swap32IfBE: (u: Uint32Array) => Uint32Array = isLE\n ? (u: Uint32Array) => u\n : byteSwap32;\n\n// Built-in hex conversion https://caniuse.com/mdn-javascript_builtins_uint8array_fromhex\nconst hasHexBuiltin: boolean = /* @__PURE__ */ (() =>\n // @ts-ignore\n typeof Uint8Array.from([]).toHex === 'function' && typeof Uint8Array.fromHex === 'function')();\n\n// Array where index 0xf0 (240) is mapped to string 'f0'\nconst hexes = /* @__PURE__ */ Array.from({ length: 256 }, (_, i) =>\n i.toString(16).padStart(2, '0')\n);\n\n/**\n * Convert byte array to hex string. Uses built-in function, when available.\n * @example bytesToHex(Uint8Array.from([0xca, 0xfe, 0x01, 0x23])) // 'cafe0123'\n */\nexport function bytesToHex(bytes: Uint8Array): string {\n abytes(bytes);\n // @ts-ignore\n if (hasHexBuiltin) return bytes.toHex();\n // pre-caching improves the speed 6x\n let hex = '';\n for (let i = 0; i < bytes.length; i++) {\n hex += hexes[bytes[i]];\n }\n return hex;\n}\n\n// We use optimized technique to convert hex string to byte array\nconst asciis = { _0: 48, _9: 57, A: 65, F: 70, a: 97, f: 102 } as const;\nfunction asciiToBase16(ch: number): number | undefined {\n if (ch >= asciis._0 && ch <= asciis._9) return ch - asciis._0; // '2' => 50-48\n if (ch >= asciis.A && ch <= asciis.F) return ch - (asciis.A - 10); // 'B' => 66-(65-10)\n if (ch >= asciis.a && ch <= asciis.f) return ch - (asciis.a - 10); // 'b' => 98-(97-10)\n return;\n}\n\n/**\n * Convert hex string to byte array. Uses built-in function, when available.\n * @example hexToBytes('cafe0123') // Uint8Array.from([0xca, 0xfe, 0x01, 0x23])\n */\nexport function hexToBytes(hex: string): Uint8Array {\n if (typeof hex !== 'string') throw new Error('hex string expected, got ' + typeof hex);\n // @ts-ignore\n if (hasHexBuiltin) return Uint8Array.fromHex(hex);\n const hl = hex.length;\n const al = hl / 2;\n if (hl % 2) throw new Error('hex string expected, got unpadded hex of length ' + hl);\n const array = new Uint8Array(al);\n for (let ai = 0, hi = 0; ai < al; ai++, hi += 2) {\n const n1 = asciiToBase16(hex.charCodeAt(hi));\n const n2 = asciiToBase16(hex.charCodeAt(hi + 1));\n if (n1 === undefined || n2 === undefined) {\n const char = hex[hi] + hex[hi + 1];\n throw new Error('hex string expected, got non-hex character \"' + char + '\" at index ' + hi);\n }\n array[ai] = n1 * 16 + n2; // multiply first octet, e.g. 'a3' => 10*16+3 => 160 + 3 => 163\n }\n return array;\n}\n\n/**\n * There is no setImmediate in browser and setTimeout is slow.\n * Call of async fn will return Promise, which will be fullfiled only on\n * next scheduler queue processing step and this is exactly what we need.\n */\nexport const nextTick = async (): Promise => {};\n\n/** Returns control to thread each 'tick' ms to avoid blocking. */\nexport async function asyncLoop(\n iters: number,\n tick: number,\n cb: (i: number) => void\n): Promise {\n let ts = Date.now();\n for (let i = 0; i < iters; i++) {\n cb(i);\n // Date.now() is not monotonic, so in case if clock goes backwards we return return control too\n const diff = Date.now() - ts;\n if (diff >= 0 && diff < tick) continue;\n await nextTick();\n ts += diff;\n }\n}\n\n// Global symbols, but ts doesn't see them: https://github.com/microsoft/TypeScript/issues/31535\ndeclare const TextEncoder: any;\ndeclare const TextDecoder: any;\n\n/**\n * Converts string to bytes using UTF8 encoding.\n * @example utf8ToBytes('abc') // Uint8Array.from([97, 98, 99])\n */\nexport function utf8ToBytes(str: string): Uint8Array {\n if (typeof str !== 'string') throw new Error('string expected');\n return new Uint8Array(new TextEncoder().encode(str)); // https://bugzil.la/1681809\n}\n\n/**\n * Converts bytes to string using UTF8 encoding.\n * @example bytesToUtf8(Uint8Array.from([97, 98, 99])) // 'abc'\n */\nexport function bytesToUtf8(bytes: Uint8Array): string {\n return new TextDecoder().decode(bytes);\n}\n\n/** Accepted input of hash functions. Strings are converted to byte arrays. */\nexport type Input = string | Uint8Array;\n/**\n * Normalizes (non-hex) string or Uint8Array to Uint8Array.\n * Warning: when Uint8Array is passed, it would NOT get copied.\n * Keep in mind for future mutable operations.\n */\nexport function toBytes(data: Input): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/** KDFs can accept string or Uint8Array for user convenience. */\nexport type KDFInput = string | Uint8Array;\n/**\n * Helper for KDFs: consumes uint8array or string.\n * When string is passed, does utf8 decoding, using TextDecoder.\n */\nexport function kdfInputToBytes(data: KDFInput): Uint8Array {\n if (typeof data === 'string') data = utf8ToBytes(data);\n abytes(data);\n return data;\n}\n\n/** Copies several Uint8Arrays into one. */\nexport function concatBytes(...arrays: Uint8Array[]): Uint8Array {\n let sum = 0;\n for (let i = 0; i < arrays.length; i++) {\n const a = arrays[i];\n abytes(a);\n sum += a.length;\n }\n const res = new Uint8Array(sum);\n for (let i = 0, pad = 0; i < arrays.length; i++) {\n const a = arrays[i];\n res.set(a, pad);\n pad += a.length;\n }\n return res;\n}\n\ntype EmptyObj = {};\nexport function checkOpts(\n defaults: T1,\n opts?: T2\n): T1 & T2 {\n if (opts !== undefined && {}.toString.call(opts) !== '[object Object]')\n throw new Error('options should be object or undefined');\n const merged = Object.assign(defaults, opts);\n return merged as T1 & T2;\n}\n\n/** Hash interface. */\nexport type IHash = {\n (data: Uint8Array): Uint8Array;\n blockLen: number;\n outputLen: number;\n create: any;\n};\n\n/** For runtime check if class implements interface */\nexport abstract class Hash> {\n abstract blockLen: number; // Bytes per block\n abstract outputLen: number; // Bytes in output\n abstract update(buf: Input): this;\n // Writes digest into buf\n abstract digestInto(buf: Uint8Array): void;\n abstract digest(): Uint8Array;\n /**\n * Resets internal state. Makes Hash instance unusable.\n * Reset is impossible for keyed hashes if key is consumed into state. If digest is not consumed\n * by user, they will need to manually call `destroy()` when zeroing is necessary.\n */\n abstract destroy(): void;\n /**\n * Clones hash instance. Unsafe: doesn't check whether `to` is valid. Can be used as `clone()`\n * when no options are passed.\n * Reasons to use `_cloneInto` instead of clone: 1) performance 2) reuse instance => all internal\n * buffers are overwritten => causes buffer overwrite which is used for digest in some cases.\n * There are no guarantees for clean-up because it's impossible in JS.\n */\n abstract _cloneInto(to?: T): T;\n // Safe version that clones internal state\n abstract clone(): T;\n}\n\n/**\n * XOF: streaming API to read digest in chunks.\n * Same as 'squeeze' in keccak/k12 and 'seek' in blake3, but more generic name.\n * When hash used in XOF mode it is up to user to call '.destroy' afterwards, since we cannot\n * destroy state, next call can require more bytes.\n */\nexport type HashXOF> = Hash & {\n xof(bytes: number): Uint8Array; // Read 'bytes' bytes from digest stream\n xofInto(buf: Uint8Array): Uint8Array; // read buf.length bytes from digest stream into buf\n};\n\n/** Hash function */\nexport type CHash = ReturnType;\n/** Hash function with output */\nexport type CHashO = ReturnType;\n/** XOF with output */\nexport type CHashXO = ReturnType;\n\n/** Wraps hash function, creating an interface on top of it */\nexport function createHasher>(\n hashCons: () => Hash\n): {\n (msg: Input): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(): Hash;\n} {\n const hashC = (msg: Input): Uint8Array => hashCons().update(toBytes(msg)).digest();\n const tmp = hashCons();\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = () => hashCons();\n return hashC;\n}\n\nexport function createOptHasher, T extends Object>(\n hashCons: (opts?: T) => Hash\n): {\n (msg: Input, opts?: T): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(opts?: T): Hash;\n} {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts?: T) => hashCons(opts);\n return hashC;\n}\n\nexport function createXOFer, T extends Object>(\n hashCons: (opts?: T) => HashXOF\n): {\n (msg: Input, opts?: T): Uint8Array;\n outputLen: number;\n blockLen: number;\n create(opts?: T): HashXOF;\n} {\n const hashC = (msg: Input, opts?: T): Uint8Array => hashCons(opts).update(toBytes(msg)).digest();\n const tmp = hashCons({} as T);\n hashC.outputLen = tmp.outputLen;\n hashC.blockLen = tmp.blockLen;\n hashC.create = (opts?: T) => hashCons(opts);\n return hashC;\n}\nexport const wrapConstructor: typeof createHasher = createHasher;\nexport const wrapConstructorWithOpts: typeof createOptHasher = createOptHasher;\nexport const wrapXOFConstructorWithOpts: typeof createXOFer = createXOFer;\n\n/** Cryptographically secure PRNG. Uses internal OS-level `crypto.getRandomValues`. */\nexport function randomBytes(bytesLength = 32): Uint8Array {\n if (crypto && typeof crypto.getRandomValues === 'function') {\n return crypto.getRandomValues(new Uint8Array(bytesLength));\n }\n // Legacy Node.js compatibility\n if (crypto && typeof crypto.randomBytes === 'function') {\n return Uint8Array.from(crypto.randomBytes(bytesLength));\n }\n throw new Error('crypto.getRandomValues must be defined');\n}\n", "/**\n * Internal Merkle-Damgard hash utils.\n * @module\n */\nimport { type Input, Hash, abytes, aexists, aoutput, clean, createView, toBytes } from './utils.ts';\n\n/** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */\nexport function setBigUint64(\n view: DataView,\n byteOffset: number,\n value: bigint,\n isLE: boolean\n): void {\n if (typeof view.setBigUint64 === 'function') return view.setBigUint64(byteOffset, value, isLE);\n const _32n = BigInt(32);\n const _u32_max = BigInt(0xffffffff);\n const wh = Number((value >> _32n) & _u32_max);\n const wl = Number(value & _u32_max);\n const h = isLE ? 4 : 0;\n const l = isLE ? 0 : 4;\n view.setUint32(byteOffset + h, wh, isLE);\n view.setUint32(byteOffset + l, wl, isLE);\n}\n\n/** Choice: a ? b : c */\nexport function Chi(a: number, b: number, c: number): number {\n return (a & b) ^ (~a & c);\n}\n\n/** Majority function, true if any two inputs is true. */\nexport function Maj(a: number, b: number, c: number): number {\n return (a & b) ^ (a & c) ^ (b & c);\n}\n\n/**\n * Merkle-Damgard hash construction base class.\n * Could be used to create MD5, RIPEMD, SHA1, SHA2.\n */\nexport abstract class HashMD> extends Hash {\n protected abstract process(buf: DataView, offset: number): void;\n protected abstract get(): number[];\n protected abstract set(...args: number[]): void;\n abstract destroy(): void;\n protected abstract roundClean(): void;\n\n readonly blockLen: number;\n readonly outputLen: number;\n readonly padOffset: number;\n readonly isLE: boolean;\n\n // For partial updates less than block size\n protected buffer: Uint8Array;\n protected view: DataView;\n protected finished = false;\n protected length = 0;\n protected pos = 0;\n protected destroyed = false;\n\n constructor(blockLen: number, outputLen: number, padOffset: number, isLE: boolean) {\n super();\n this.blockLen = blockLen;\n this.outputLen = outputLen;\n this.padOffset = padOffset;\n this.isLE = isLE;\n this.buffer = new Uint8Array(blockLen);\n this.view = createView(this.buffer);\n }\n update(data: Input): this {\n aexists(this);\n data = toBytes(data);\n abytes(data);\n const { view, buffer, blockLen } = this;\n const len = data.length;\n for (let pos = 0; pos < len; ) {\n const take = Math.min(blockLen - this.pos, len - pos);\n // Fast path: we have at least one block in input, cast it to view and process\n if (take === blockLen) {\n const dataView = createView(data);\n for (; blockLen <= len - pos; pos += blockLen) this.process(dataView, pos);\n continue;\n }\n buffer.set(data.subarray(pos, pos + take), this.pos);\n this.pos += take;\n pos += take;\n if (this.pos === blockLen) {\n this.process(view, 0);\n this.pos = 0;\n }\n }\n this.length += data.length;\n this.roundClean();\n return this;\n }\n digestInto(out: Uint8Array): void {\n aexists(this);\n aoutput(out, this);\n this.finished = true;\n // Padding\n // We can avoid allocation of buffer for padding completely if it\n // was previously not allocated here. But it won't change performance.\n const { buffer, view, blockLen, isLE } = this;\n let { pos } = this;\n // append the bit '1' to the message\n buffer[pos++] = 0b10000000;\n clean(this.buffer.subarray(pos));\n // we have less than padOffset left in buffer, so we cannot put length in\n // current block, need process it and pad again\n if (this.padOffset > blockLen - pos) {\n this.process(view, 0);\n pos = 0;\n }\n // Pad until full block byte with zeros\n for (let i = pos; i < blockLen; i++) buffer[i] = 0;\n // Note: sha512 requires length to be 128bit integer, but length in JS will overflow before that\n // You need to write around 2 exabytes (u64_max / 8 / (1024**6)) for this to happen.\n // So we just write lowest 64 bits of that value.\n setBigUint64(view, blockLen - 8, BigInt(this.length * 8), isLE);\n this.process(view, 0);\n const oview = createView(out);\n const len = this.outputLen;\n // NOTE: we do division by 4 later, which should be fused in single op with modulo by JIT\n if (len % 4) throw new Error('_sha2: outputLen should be aligned to 32bit');\n const outLen = len / 4;\n const state = this.get();\n if (outLen > state.length) throw new Error('_sha2: outputLen bigger than state');\n for (let i = 0; i < outLen; i++) oview.setUint32(4 * i, state[i], isLE);\n }\n digest(): Uint8Array {\n const { buffer, outputLen } = this;\n this.digestInto(buffer);\n const res = buffer.slice(0, outputLen);\n this.destroy();\n return res;\n }\n _cloneInto(to?: T): T {\n to ||= new (this.constructor as any)() as T;\n to.set(...this.get());\n const { blockLen, buffer, length, finished, destroyed, pos } = this;\n to.destroyed = destroyed;\n to.finished = finished;\n to.length = length;\n to.pos = pos;\n if (length % blockLen) to.buffer.set(buffer);\n return to;\n }\n clone(): T {\n return this._cloneInto();\n }\n}\n\n/**\n * Initial SHA-2 state: fractional parts of square roots of first 16 primes 2..53.\n * Check out `test/misc/sha2-gen-iv.js` for recomputation guide.\n */\n\n/** Initial SHA256 state. Bits 0..32 of frac part of sqrt of primes 2..19 */\nexport const SHA256_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a, 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19,\n]);\n\n/** Initial SHA224 state. Bits 32..64 of frac part of sqrt of primes 23..53 */\nexport const SHA224_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939, 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4,\n]);\n\n/** Initial SHA384 state. Bits 0..64 of frac part of sqrt of primes 23..53 */\nexport const SHA384_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0xcbbb9d5d, 0xc1059ed8, 0x629a292a, 0x367cd507, 0x9159015a, 0x3070dd17, 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31, 0x8eb44a87, 0x68581511, 0xdb0c2e0d, 0x64f98fa7, 0x47b5481d, 0xbefa4fa4,\n]);\n\n/** Initial SHA512 state. Bits 0..64 of frac part of sqrt of primes 2..19 */\nexport const SHA512_IV: Uint32Array = /* @__PURE__ */ Uint32Array.from([\n 0x6a09e667, 0xf3bcc908, 0xbb67ae85, 0x84caa73b, 0x3c6ef372, 0xfe94f82b, 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1, 0x9b05688c, 0x2b3e6c1f, 0x1f83d9ab, 0xfb41bd6b, 0x5be0cd19, 0x137e2179,\n]);\n", "/**\n\nSHA1 (RFC 3174), MD5 (RFC 1321) and RIPEMD160 (RFC 2286) legacy, weak hash functions.\nDon't use them in a new protocol. What \"weak\" means:\n\n- Collisions can be made with 2^18 effort in MD5, 2^60 in SHA1, 2^80 in RIPEMD160.\n- No practical pre-image attacks (only theoretical, 2^123.4)\n- HMAC seems kinda ok: https://datatracker.ietf.org/doc/html/rfc6151\n * @module\n */\nimport { Chi, HashMD, Maj } from './_md.ts';\nimport { type CHash, clean, createHasher, rotl } from './utils.ts';\n\n/** Initial SHA1 state */\nconst SHA1_IV = /* @__PURE__ */ Uint32Array.from([\n 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,\n]);\n\n// Reusable temporary buffer\nconst SHA1_W = /* @__PURE__ */ new Uint32Array(80);\n\n/** SHA1 legacy hash class. */\nexport class SHA1 extends HashMD {\n private A = SHA1_IV[0] | 0;\n private B = SHA1_IV[1] | 0;\n private C = SHA1_IV[2] | 0;\n private D = SHA1_IV[3] | 0;\n private E = SHA1_IV[4] | 0;\n\n constructor() {\n super(64, 20, 8, false);\n }\n protected get(): [number, number, number, number, number] {\n const { A, B, C, D, E } = this;\n return [A, B, C, D, E];\n }\n protected set(A: number, B: number, C: number, D: number, E: number): void {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n }\n protected process(view: DataView, offset: number): void {\n for (let i = 0; i < 16; i++, offset += 4) SHA1_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 80; i++)\n SHA1_W[i] = rotl(SHA1_W[i - 3] ^ SHA1_W[i - 8] ^ SHA1_W[i - 14] ^ SHA1_W[i - 16], 1);\n // Compression function main loop, 80 rounds\n let { A, B, C, D, E } = this;\n for (let i = 0; i < 80; i++) {\n let F, K;\n if (i < 20) {\n F = Chi(B, C, D);\n K = 0x5a827999;\n } else if (i < 40) {\n F = B ^ C ^ D;\n K = 0x6ed9eba1;\n } else if (i < 60) {\n F = Maj(B, C, D);\n K = 0x8f1bbcdc;\n } else {\n F = B ^ C ^ D;\n K = 0xca62c1d6;\n }\n const T = (rotl(A, 5) + F + E + K + SHA1_W[i]) | 0;\n E = D;\n D = C;\n C = rotl(B, 30);\n B = A;\n A = T;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n this.set(A, B, C, D, E);\n }\n protected roundClean(): void {\n clean(SHA1_W);\n }\n destroy(): void {\n this.set(0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\n\n/** SHA1 (RFC 3174) legacy hash function. It was cryptographically broken. */\nexport const sha1: CHash = /* @__PURE__ */ createHasher(() => new SHA1());\n\n/** Per-round constants */\nconst p32 = /* @__PURE__ */ Math.pow(2, 32);\nconst K = /* @__PURE__ */ Array.from({ length: 64 }, (_, i) =>\n Math.floor(p32 * Math.abs(Math.sin(i + 1)))\n);\n\n/** md5 initial state: same as sha1, but 4 u32 instead of 5. */\nconst MD5_IV = /* @__PURE__ */ SHA1_IV.slice(0, 4);\n\n// Reusable temporary buffer\nconst MD5_W = /* @__PURE__ */ new Uint32Array(16);\n/** MD5 legacy hash class. */\nexport class MD5 extends HashMD {\n private A = MD5_IV[0] | 0;\n private B = MD5_IV[1] | 0;\n private C = MD5_IV[2] | 0;\n private D = MD5_IV[3] | 0;\n\n constructor() {\n super(64, 16, 8, true);\n }\n protected get(): [number, number, number, number] {\n const { A, B, C, D } = this;\n return [A, B, C, D];\n }\n protected set(A: number, B: number, C: number, D: number): void {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n }\n protected process(view: DataView, offset: number): void {\n for (let i = 0; i < 16; i++, offset += 4) MD5_W[i] = view.getUint32(offset, true);\n // Compression function main loop, 64 rounds\n let { A, B, C, D } = this;\n for (let i = 0; i < 64; i++) {\n let F, g, s;\n if (i < 16) {\n F = Chi(B, C, D);\n g = i;\n s = [7, 12, 17, 22];\n } else if (i < 32) {\n F = Chi(D, B, C);\n g = (5 * i + 1) % 16;\n s = [5, 9, 14, 20];\n } else if (i < 48) {\n F = B ^ C ^ D;\n g = (3 * i + 5) % 16;\n s = [4, 11, 16, 23];\n } else {\n F = C ^ (B | ~D);\n g = (7 * i) % 16;\n s = [6, 10, 15, 21];\n }\n F = F + A + K[i] + MD5_W[g];\n A = D;\n D = C;\n C = B;\n B = B + rotl(F, s[i % 4]);\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n this.set(A, B, C, D);\n }\n protected roundClean(): void {\n clean(MD5_W);\n }\n destroy(): void {\n this.set(0, 0, 0, 0);\n clean(this.buffer);\n }\n}\n\n/**\n * MD5 (RFC 1321) legacy hash function. It was cryptographically broken.\n * MD5 architecture is similar to SHA1, with some differences:\n * - Reduced output length: 16 bytes (128 bit) instead of 20\n * - 64 rounds, instead of 80\n * - Little-endian: could be faster, but will require more code\n * - Non-linear index selection: huge speed-up for unroll\n * - Per round constants: more memory accesses, additional speed-up for unroll\n */\nexport const md5: CHash = /* @__PURE__ */ createHasher(() => new MD5());\n\n// RIPEMD-160\n\nconst Rho160 = /* @__PURE__ */ Uint8Array.from([\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n]);\nconst Id160 = /* @__PURE__ */ (() => Uint8Array.from(new Array(16).fill(0).map((_, i) => i)))();\nconst Pi160 = /* @__PURE__ */ (() => Id160.map((i) => (9 * i + 5) % 16))();\nconst idxLR = /* @__PURE__ */ (() => {\n const L = [Id160];\n const R = [Pi160];\n const res = [L, R];\n for (let i = 0; i < 4; i++) for (let j of res) j.push(j[i].map((k) => Rho160[k]));\n return res;\n})();\nconst idxL = /* @__PURE__ */ (() => idxLR[0])();\nconst idxR = /* @__PURE__ */ (() => idxLR[1])();\n// const [idxL, idxR] = idxLR;\n\nconst shifts160 = /* @__PURE__ */ [\n [11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8],\n [12, 13, 11, 15, 6, 9, 9, 7, 12, 15, 11, 13, 7, 8, 7, 7],\n [13, 15, 14, 11, 7, 7, 6, 8, 13, 14, 13, 12, 5, 5, 6, 9],\n [14, 11, 12, 14, 8, 6, 5, 5, 15, 12, 15, 14, 9, 9, 8, 6],\n [15, 12, 13, 13, 9, 5, 8, 6, 14, 11, 12, 11, 8, 6, 5, 5],\n].map((i) => Uint8Array.from(i));\nconst shiftsL160 = /* @__PURE__ */ idxL.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst shiftsR160 = /* @__PURE__ */ idxR.map((idx, i) => idx.map((j) => shifts160[i][j]));\nconst Kl160 = /* @__PURE__ */ Uint32Array.from([\n 0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e,\n]);\nconst Kr160 = /* @__PURE__ */ Uint32Array.from([\n 0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000,\n]);\n// It's called f() in spec.\nfunction ripemd_f(group: number, x: number, y: number, z: number): number {\n if (group === 0) return x ^ y ^ z;\n if (group === 1) return (x & y) | (~x & z);\n if (group === 2) return (x | ~y) ^ z;\n if (group === 3) return (x & z) | (y & ~z);\n return x ^ (y | ~z);\n}\n// Reusable temporary buffer\nconst BUF_160 = /* @__PURE__ */ new Uint32Array(16);\nexport class RIPEMD160 extends HashMD {\n private h0 = 0x67452301 | 0;\n private h1 = 0xefcdab89 | 0;\n private h2 = 0x98badcfe | 0;\n private h3 = 0x10325476 | 0;\n private h4 = 0xc3d2e1f0 | 0;\n\n constructor() {\n super(64, 20, 8, true);\n }\n protected get(): [number, number, number, number, number] {\n const { h0, h1, h2, h3, h4 } = this;\n return [h0, h1, h2, h3, h4];\n }\n protected set(h0: number, h1: number, h2: number, h3: number, h4: number): void {\n this.h0 = h0 | 0;\n this.h1 = h1 | 0;\n this.h2 = h2 | 0;\n this.h3 = h3 | 0;\n this.h4 = h4 | 0;\n }\n protected process(view: DataView, offset: number): void {\n for (let i = 0; i < 16; i++, offset += 4) BUF_160[i] = view.getUint32(offset, true);\n // prettier-ignore\n let al = this.h0 | 0, ar = al,\n bl = this.h1 | 0, br = bl,\n cl = this.h2 | 0, cr = cl,\n dl = this.h3 | 0, dr = dl,\n el = this.h4 | 0, er = el;\n\n // Instead of iterating 0 to 80, we split it into 5 groups\n // And use the groups in constants, functions, etc. Much simpler\n for (let group = 0; group < 5; group++) {\n const rGroup = 4 - group;\n const hbl = Kl160[group], hbr = Kr160[group]; // prettier-ignore\n const rl = idxL[group], rr = idxR[group]; // prettier-ignore\n const sl = shiftsL160[group], sr = shiftsR160[group]; // prettier-ignore\n for (let i = 0; i < 16; i++) {\n const tl = (rotl(al + ripemd_f(group, bl, cl, dl) + BUF_160[rl[i]] + hbl, sl[i]) + el) | 0;\n al = el, el = dl, dl = rotl(cl, 10) | 0, cl = bl, bl = tl; // prettier-ignore\n }\n // 2 loops are 10% faster\n for (let i = 0; i < 16; i++) {\n const tr = (rotl(ar + ripemd_f(rGroup, br, cr, dr) + BUF_160[rr[i]] + hbr, sr[i]) + er) | 0;\n ar = er, er = dr, dr = rotl(cr, 10) | 0, cr = br, br = tr; // prettier-ignore\n }\n }\n // Add the compressed chunk to the current hash value\n this.set(\n (this.h1 + cl + dr) | 0,\n (this.h2 + dl + er) | 0,\n (this.h3 + el + ar) | 0,\n (this.h4 + al + br) | 0,\n (this.h0 + bl + cr) | 0\n );\n }\n protected roundClean(): void {\n clean(BUF_160);\n }\n destroy(): void {\n this.destroyed = true;\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0);\n }\n}\n\n/**\n * RIPEMD-160 - a legacy hash function from 1990s.\n * * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n */\nexport const ripemd160: CHash = /* @__PURE__ */ createHasher(() => new RIPEMD160());\n", "/**\n * RIPEMD-160 legacy hash function.\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160.html\n * https://homes.esat.kuleuven.be/~bosselae/ripemd160/pdf/AB-9601/AB-9601.pdf\n * @module\n * @deprecated\n */\nimport { RIPEMD160 as RIPEMD160n, ripemd160 as ripemd160n } from './legacy.ts';\n/** @deprecated Use import from `noble/hashes/legacy` module */\nexport const RIPEMD160: typeof RIPEMD160n = RIPEMD160n;\n/** @deprecated Use import from `noble/hashes/legacy` module */\nexport const ripemd160: typeof ripemd160n = ripemd160n;\n", "/**\n * Internal helpers for u64. BigUint64Array is too slow as per 2025, so we implement it using Uint32Array.\n * @todo re-check https://issues.chromium.org/issues/42212588\n * @module\n */\nconst U32_MASK64 = /* @__PURE__ */ BigInt(2 ** 32 - 1);\nconst _32n = /* @__PURE__ */ BigInt(32);\n\nfunction fromBig(\n n: bigint,\n le = false\n): {\n h: number;\n l: number;\n} {\n if (le) return { h: Number(n & U32_MASK64), l: Number((n >> _32n) & U32_MASK64) };\n return { h: Number((n >> _32n) & U32_MASK64) | 0, l: Number(n & U32_MASK64) | 0 };\n}\n\nfunction split(lst: bigint[], le = false): Uint32Array[] {\n const len = lst.length;\n let Ah = new Uint32Array(len);\n let Al = new Uint32Array(len);\n for (let i = 0; i < len; i++) {\n const { h, l } = fromBig(lst[i], le);\n [Ah[i], Al[i]] = [h, l];\n }\n return [Ah, Al];\n}\n\nconst toBig = (h: number, l: number): bigint => (BigInt(h >>> 0) << _32n) | BigInt(l >>> 0);\n// for Shift in [0, 32)\nconst shrSH = (h: number, _l: number, s: number): number => h >>> s;\nconst shrSL = (h: number, l: number, s: number): number => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in [1, 32)\nconst rotrSH = (h: number, l: number, s: number): number => (h >>> s) | (l << (32 - s));\nconst rotrSL = (h: number, l: number, s: number): number => (h << (32 - s)) | (l >>> s);\n// Right rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotrBH = (h: number, l: number, s: number): number => (h << (64 - s)) | (l >>> (s - 32));\nconst rotrBL = (h: number, l: number, s: number): number => (h >>> (s - 32)) | (l << (64 - s));\n// Right rotate for shift===32 (just swaps l&h)\nconst rotr32H = (_h: number, l: number): number => l;\nconst rotr32L = (h: number, _l: number): number => h;\n// Left rotate for Shift in [1, 32)\nconst rotlSH = (h: number, l: number, s: number): number => (h << s) | (l >>> (32 - s));\nconst rotlSL = (h: number, l: number, s: number): number => (l << s) | (h >>> (32 - s));\n// Left rotate for Shift in (32, 64), NOTE: 32 is special case.\nconst rotlBH = (h: number, l: number, s: number): number => (l << (s - 32)) | (h >>> (64 - s));\nconst rotlBL = (h: number, l: number, s: number): number => (h << (s - 32)) | (l >>> (64 - s));\n\n// JS uses 32-bit signed integers for bitwise operations which means we cannot\n// simple take carry out of low bit sum by shift, we need to use division.\nfunction add(\n Ah: number,\n Al: number,\n Bh: number,\n Bl: number\n): {\n h: number;\n l: number;\n} {\n const l = (Al >>> 0) + (Bl >>> 0);\n return { h: (Ah + Bh + ((l / 2 ** 32) | 0)) | 0, l: l | 0 };\n}\n// Addition with more than 2 elements\nconst add3L = (Al: number, Bl: number, Cl: number): number => (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0);\nconst add3H = (low: number, Ah: number, Bh: number, Ch: number): number =>\n (Ah + Bh + Ch + ((low / 2 ** 32) | 0)) | 0;\nconst add4L = (Al: number, Bl: number, Cl: number, Dl: number): number =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0);\nconst add4H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number): number =>\n (Ah + Bh + Ch + Dh + ((low / 2 ** 32) | 0)) | 0;\nconst add5L = (Al: number, Bl: number, Cl: number, Dl: number, El: number): number =>\n (Al >>> 0) + (Bl >>> 0) + (Cl >>> 0) + (Dl >>> 0) + (El >>> 0);\nconst add5H = (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number): number =>\n (Ah + Bh + Ch + Dh + Eh + ((low / 2 ** 32) | 0)) | 0;\n\n// prettier-ignore\nexport {\n add, add3H, add3L, add4H, add4L, add5H, add5L, fromBig, rotlBH, rotlBL, rotlSH, rotlSL, rotr32H, rotr32L, rotrBH, rotrBL, rotrSH, rotrSL, shrSH, shrSL, split, toBig\n};\n// prettier-ignore\nconst u64: { fromBig: typeof fromBig; split: typeof split; toBig: (h: number, l: number) => bigint; shrSH: (h: number, _l: number, s: number) => number; shrSL: (h: number, l: number, s: number) => number; rotrSH: (h: number, l: number, s: number) => number; rotrSL: (h: number, l: number, s: number) => number; rotrBH: (h: number, l: number, s: number) => number; rotrBL: (h: number, l: number, s: number) => number; rotr32H: (_h: number, l: number) => number; rotr32L: (h: number, _l: number) => number; rotlSH: (h: number, l: number, s: number) => number; rotlSL: (h: number, l: number, s: number) => number; rotlBH: (h: number, l: number, s: number) => number; rotlBL: (h: number, l: number, s: number) => number; add: typeof add; add3L: (Al: number, Bl: number, Cl: number) => number; add3H: (low: number, Ah: number, Bh: number, Ch: number) => number; add4L: (Al: number, Bl: number, Cl: number, Dl: number) => number; add4H: (low: number, Ah: number, Bh: number, Ch: number, Dh: number) => number; add5H: (low: number, Ah: number, Bh: number, Ch: number, Dh: number, Eh: number) => number; add5L: (Al: number, Bl: number, Cl: number, Dl: number, El: number) => number; } = {\n fromBig, split, toBig,\n shrSH, shrSL,\n rotrSH, rotrSL, rotrBH, rotrBL,\n rotr32H, rotr32L,\n rotlSH, rotlSL, rotlBH, rotlBL,\n add, add3L, add3H, add4L, add4H, add5H, add5L,\n};\nexport default u64;\n", "/**\n * SHA2 hash function. A.k.a. sha256, sha384, sha512, sha512_224, sha512_256.\n * SHA256 is the fastest hash implementable in JS, even faster than Blake3.\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n */\nimport { Chi, HashMD, Maj, SHA224_IV, SHA256_IV, SHA384_IV, SHA512_IV } from './_md.ts';\nimport * as u64 from './_u64.ts';\nimport { type CHash, clean, createHasher, rotr } from './utils.ts';\n\n/**\n * Round constants:\n * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)\n */\n// prettier-ignore\nconst SHA256_K = /* @__PURE__ */ Uint32Array.from([\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n]);\n\n/** Reusable temporary buffer. \"W\" comes straight from spec. */\nconst SHA256_W = /* @__PURE__ */ new Uint32Array(64);\nexport class SHA256 extends HashMD {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n protected A: number = SHA256_IV[0] | 0;\n protected B: number = SHA256_IV[1] | 0;\n protected C: number = SHA256_IV[2] | 0;\n protected D: number = SHA256_IV[3] | 0;\n protected E: number = SHA256_IV[4] | 0;\n protected F: number = SHA256_IV[5] | 0;\n protected G: number = SHA256_IV[6] | 0;\n protected H: number = SHA256_IV[7] | 0;\n\n constructor(outputLen: number = 32) {\n super(64, outputLen, 8, false);\n }\n protected get(): [number, number, number, number, number, number, number, number] {\n const { A, B, C, D, E, F, G, H } = this;\n return [A, B, C, D, E, F, G, H];\n }\n // prettier-ignore\n protected set(\n A: number, B: number, C: number, D: number, E: number, F: number, G: number, H: number\n ): void {\n this.A = A | 0;\n this.B = B | 0;\n this.C = C | 0;\n this.D = D | 0;\n this.E = E | 0;\n this.F = F | 0;\n this.G = G | 0;\n this.H = H | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 48 words w[16..63] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) SHA256_W[i] = view.getUint32(offset, false);\n for (let i = 16; i < 64; i++) {\n const W15 = SHA256_W[i - 15];\n const W2 = SHA256_W[i - 2];\n const s0 = rotr(W15, 7) ^ rotr(W15, 18) ^ (W15 >>> 3);\n const s1 = rotr(W2, 17) ^ rotr(W2, 19) ^ (W2 >>> 10);\n SHA256_W[i] = (s1 + SHA256_W[i - 7] + s0 + SHA256_W[i - 16]) | 0;\n }\n // Compression function main loop, 64 rounds\n let { A, B, C, D, E, F, G, H } = this;\n for (let i = 0; i < 64; i++) {\n const sigma1 = rotr(E, 6) ^ rotr(E, 11) ^ rotr(E, 25);\n const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const sigma0 = rotr(A, 2) ^ rotr(A, 13) ^ rotr(A, 22);\n const T2 = (sigma0 + Maj(A, B, C)) | 0;\n H = G;\n G = F;\n F = E;\n E = (D + T1) | 0;\n D = C;\n C = B;\n B = A;\n A = (T1 + T2) | 0;\n }\n // Add the compressed chunk to the current hash value\n A = (A + this.A) | 0;\n B = (B + this.B) | 0;\n C = (C + this.C) | 0;\n D = (D + this.D) | 0;\n E = (E + this.E) | 0;\n F = (F + this.F) | 0;\n G = (G + this.G) | 0;\n H = (H + this.H) | 0;\n this.set(A, B, C, D, E, F, G, H);\n }\n protected roundClean(): void {\n clean(SHA256_W);\n }\n destroy(): void {\n this.set(0, 0, 0, 0, 0, 0, 0, 0);\n clean(this.buffer);\n }\n}\n\nexport class SHA224 extends SHA256 {\n protected A: number = SHA224_IV[0] | 0;\n protected B: number = SHA224_IV[1] | 0;\n protected C: number = SHA224_IV[2] | 0;\n protected D: number = SHA224_IV[3] | 0;\n protected E: number = SHA224_IV[4] | 0;\n protected F: number = SHA224_IV[5] | 0;\n protected G: number = SHA224_IV[6] | 0;\n protected H: number = SHA224_IV[7] | 0;\n constructor() {\n super(28);\n }\n}\n\n// SHA2-512 is slower than sha256 in js because u64 operations are slow.\n\n// Round contants\n// First 32 bits of the fractional parts of the cube roots of the first 80 primes 2..409\n// prettier-ignore\nconst K512 = /* @__PURE__ */ (() => u64.split([\n '0x428a2f98d728ae22', '0x7137449123ef65cd', '0xb5c0fbcfec4d3b2f', '0xe9b5dba58189dbbc',\n '0x3956c25bf348b538', '0x59f111f1b605d019', '0x923f82a4af194f9b', '0xab1c5ed5da6d8118',\n '0xd807aa98a3030242', '0x12835b0145706fbe', '0x243185be4ee4b28c', '0x550c7dc3d5ffb4e2',\n '0x72be5d74f27b896f', '0x80deb1fe3b1696b1', '0x9bdc06a725c71235', '0xc19bf174cf692694',\n '0xe49b69c19ef14ad2', '0xefbe4786384f25e3', '0x0fc19dc68b8cd5b5', '0x240ca1cc77ac9c65',\n '0x2de92c6f592b0275', '0x4a7484aa6ea6e483', '0x5cb0a9dcbd41fbd4', '0x76f988da831153b5',\n '0x983e5152ee66dfab', '0xa831c66d2db43210', '0xb00327c898fb213f', '0xbf597fc7beef0ee4',\n '0xc6e00bf33da88fc2', '0xd5a79147930aa725', '0x06ca6351e003826f', '0x142929670a0e6e70',\n '0x27b70a8546d22ffc', '0x2e1b21385c26c926', '0x4d2c6dfc5ac42aed', '0x53380d139d95b3df',\n '0x650a73548baf63de', '0x766a0abb3c77b2a8', '0x81c2c92e47edaee6', '0x92722c851482353b',\n '0xa2bfe8a14cf10364', '0xa81a664bbc423001', '0xc24b8b70d0f89791', '0xc76c51a30654be30',\n '0xd192e819d6ef5218', '0xd69906245565a910', '0xf40e35855771202a', '0x106aa07032bbd1b8',\n '0x19a4c116b8d2d0c8', '0x1e376c085141ab53', '0x2748774cdf8eeb99', '0x34b0bcb5e19b48a8',\n '0x391c0cb3c5c95a63', '0x4ed8aa4ae3418acb', '0x5b9cca4f7763e373', '0x682e6ff3d6b2b8a3',\n '0x748f82ee5defb2fc', '0x78a5636f43172f60', '0x84c87814a1f0ab72', '0x8cc702081a6439ec',\n '0x90befffa23631e28', '0xa4506cebde82bde9', '0xbef9a3f7b2c67915', '0xc67178f2e372532b',\n '0xca273eceea26619c', '0xd186b8c721c0c207', '0xeada7dd6cde0eb1e', '0xf57d4f7fee6ed178',\n '0x06f067aa72176fba', '0x0a637dc5a2c898a6', '0x113f9804bef90dae', '0x1b710b35131c471b',\n '0x28db77f523047d84', '0x32caab7b40c72493', '0x3c9ebe0a15c9bebc', '0x431d67c49c100d4c',\n '0x4cc5d4becb3e42b6', '0x597f299cfc657e2a', '0x5fcb6fab3ad6faec', '0x6c44198c4a475817'\n].map(n => BigInt(n))))();\nconst SHA512_Kh = /* @__PURE__ */ (() => K512[0])();\nconst SHA512_Kl = /* @__PURE__ */ (() => K512[1])();\n\n// Reusable temporary buffers\nconst SHA512_W_H = /* @__PURE__ */ new Uint32Array(80);\nconst SHA512_W_L = /* @__PURE__ */ new Uint32Array(80);\n\nexport class SHA512 extends HashMD {\n // We cannot use array here since array allows indexing by variable\n // which means optimizer/compiler cannot use registers.\n // h -- high 32 bits, l -- low 32 bits\n protected Ah: number = SHA512_IV[0] | 0;\n protected Al: number = SHA512_IV[1] | 0;\n protected Bh: number = SHA512_IV[2] | 0;\n protected Bl: number = SHA512_IV[3] | 0;\n protected Ch: number = SHA512_IV[4] | 0;\n protected Cl: number = SHA512_IV[5] | 0;\n protected Dh: number = SHA512_IV[6] | 0;\n protected Dl: number = SHA512_IV[7] | 0;\n protected Eh: number = SHA512_IV[8] | 0;\n protected El: number = SHA512_IV[9] | 0;\n protected Fh: number = SHA512_IV[10] | 0;\n protected Fl: number = SHA512_IV[11] | 0;\n protected Gh: number = SHA512_IV[12] | 0;\n protected Gl: number = SHA512_IV[13] | 0;\n protected Hh: number = SHA512_IV[14] | 0;\n protected Hl: number = SHA512_IV[15] | 0;\n\n constructor(outputLen: number = 64) {\n super(128, outputLen, 16, false);\n }\n // prettier-ignore\n protected get(): [\n number, number, number, number, number, number, number, number,\n number, number, number, number, number, number, number, number\n ] {\n const { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n return [Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl];\n }\n // prettier-ignore\n protected set(\n Ah: number, Al: number, Bh: number, Bl: number, Ch: number, Cl: number, Dh: number, Dl: number,\n Eh: number, El: number, Fh: number, Fl: number, Gh: number, Gl: number, Hh: number, Hl: number\n ): void {\n this.Ah = Ah | 0;\n this.Al = Al | 0;\n this.Bh = Bh | 0;\n this.Bl = Bl | 0;\n this.Ch = Ch | 0;\n this.Cl = Cl | 0;\n this.Dh = Dh | 0;\n this.Dl = Dl | 0;\n this.Eh = Eh | 0;\n this.El = El | 0;\n this.Fh = Fh | 0;\n this.Fl = Fl | 0;\n this.Gh = Gh | 0;\n this.Gl = Gl | 0;\n this.Hh = Hh | 0;\n this.Hl = Hl | 0;\n }\n protected process(view: DataView, offset: number): void {\n // Extend the first 16 words into the remaining 64 words w[16..79] of the message schedule array\n for (let i = 0; i < 16; i++, offset += 4) {\n SHA512_W_H[i] = view.getUint32(offset);\n SHA512_W_L[i] = view.getUint32((offset += 4));\n }\n for (let i = 16; i < 80; i++) {\n // s0 := (w[i-15] rightrotate 1) xor (w[i-15] rightrotate 8) xor (w[i-15] rightshift 7)\n const W15h = SHA512_W_H[i - 15] | 0;\n const W15l = SHA512_W_L[i - 15] | 0;\n const s0h = u64.rotrSH(W15h, W15l, 1) ^ u64.rotrSH(W15h, W15l, 8) ^ u64.shrSH(W15h, W15l, 7);\n const s0l = u64.rotrSL(W15h, W15l, 1) ^ u64.rotrSL(W15h, W15l, 8) ^ u64.shrSL(W15h, W15l, 7);\n // s1 := (w[i-2] rightrotate 19) xor (w[i-2] rightrotate 61) xor (w[i-2] rightshift 6)\n const W2h = SHA512_W_H[i - 2] | 0;\n const W2l = SHA512_W_L[i - 2] | 0;\n const s1h = u64.rotrSH(W2h, W2l, 19) ^ u64.rotrBH(W2h, W2l, 61) ^ u64.shrSH(W2h, W2l, 6);\n const s1l = u64.rotrSL(W2h, W2l, 19) ^ u64.rotrBL(W2h, W2l, 61) ^ u64.shrSL(W2h, W2l, 6);\n // SHA256_W[i] = s0 + s1 + SHA256_W[i - 7] + SHA256_W[i - 16];\n const SUMl = u64.add4L(s0l, s1l, SHA512_W_L[i - 7], SHA512_W_L[i - 16]);\n const SUMh = u64.add4H(SUMl, s0h, s1h, SHA512_W_H[i - 7], SHA512_W_H[i - 16]);\n SHA512_W_H[i] = SUMh | 0;\n SHA512_W_L[i] = SUMl | 0;\n }\n let { Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl } = this;\n // Compression function main loop, 80 rounds\n for (let i = 0; i < 80; i++) {\n // S1 := (e rightrotate 14) xor (e rightrotate 18) xor (e rightrotate 41)\n const sigma1h = u64.rotrSH(Eh, El, 14) ^ u64.rotrSH(Eh, El, 18) ^ u64.rotrBH(Eh, El, 41);\n const sigma1l = u64.rotrSL(Eh, El, 14) ^ u64.rotrSL(Eh, El, 18) ^ u64.rotrBL(Eh, El, 41);\n //const T1 = (H + sigma1 + Chi(E, F, G) + SHA256_K[i] + SHA256_W[i]) | 0;\n const CHIh = (Eh & Fh) ^ (~Eh & Gh);\n const CHIl = (El & Fl) ^ (~El & Gl);\n // T1 = H + sigma1 + Chi(E, F, G) + SHA512_K[i] + SHA512_W[i]\n // prettier-ignore\n const T1ll = u64.add5L(Hl, sigma1l, CHIl, SHA512_Kl[i], SHA512_W_L[i]);\n const T1h = u64.add5H(T1ll, Hh, sigma1h, CHIh, SHA512_Kh[i], SHA512_W_H[i]);\n const T1l = T1ll | 0;\n // S0 := (a rightrotate 28) xor (a rightrotate 34) xor (a rightrotate 39)\n const sigma0h = u64.rotrSH(Ah, Al, 28) ^ u64.rotrBH(Ah, Al, 34) ^ u64.rotrBH(Ah, Al, 39);\n const sigma0l = u64.rotrSL(Ah, Al, 28) ^ u64.rotrBL(Ah, Al, 34) ^ u64.rotrBL(Ah, Al, 39);\n const MAJh = (Ah & Bh) ^ (Ah & Ch) ^ (Bh & Ch);\n const MAJl = (Al & Bl) ^ (Al & Cl) ^ (Bl & Cl);\n Hh = Gh | 0;\n Hl = Gl | 0;\n Gh = Fh | 0;\n Gl = Fl | 0;\n Fh = Eh | 0;\n Fl = El | 0;\n ({ h: Eh, l: El } = u64.add(Dh | 0, Dl | 0, T1h | 0, T1l | 0));\n Dh = Ch | 0;\n Dl = Cl | 0;\n Ch = Bh | 0;\n Cl = Bl | 0;\n Bh = Ah | 0;\n Bl = Al | 0;\n const All = u64.add3L(T1l, sigma0l, MAJl);\n Ah = u64.add3H(All, T1h, sigma0h, MAJh);\n Al = All | 0;\n }\n // Add the compressed chunk to the current hash value\n ({ h: Ah, l: Al } = u64.add(this.Ah | 0, this.Al | 0, Ah | 0, Al | 0));\n ({ h: Bh, l: Bl } = u64.add(this.Bh | 0, this.Bl | 0, Bh | 0, Bl | 0));\n ({ h: Ch, l: Cl } = u64.add(this.Ch | 0, this.Cl | 0, Ch | 0, Cl | 0));\n ({ h: Dh, l: Dl } = u64.add(this.Dh | 0, this.Dl | 0, Dh | 0, Dl | 0));\n ({ h: Eh, l: El } = u64.add(this.Eh | 0, this.El | 0, Eh | 0, El | 0));\n ({ h: Fh, l: Fl } = u64.add(this.Fh | 0, this.Fl | 0, Fh | 0, Fl | 0));\n ({ h: Gh, l: Gl } = u64.add(this.Gh | 0, this.Gl | 0, Gh | 0, Gl | 0));\n ({ h: Hh, l: Hl } = u64.add(this.Hh | 0, this.Hl | 0, Hh | 0, Hl | 0));\n this.set(Ah, Al, Bh, Bl, Ch, Cl, Dh, Dl, Eh, El, Fh, Fl, Gh, Gl, Hh, Hl);\n }\n protected roundClean(): void {\n clean(SHA512_W_H, SHA512_W_L);\n }\n destroy(): void {\n clean(this.buffer);\n this.set(0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);\n }\n}\n\nexport class SHA384 extends SHA512 {\n protected Ah: number = SHA384_IV[0] | 0;\n protected Al: number = SHA384_IV[1] | 0;\n protected Bh: number = SHA384_IV[2] | 0;\n protected Bl: number = SHA384_IV[3] | 0;\n protected Ch: number = SHA384_IV[4] | 0;\n protected Cl: number = SHA384_IV[5] | 0;\n protected Dh: number = SHA384_IV[6] | 0;\n protected Dl: number = SHA384_IV[7] | 0;\n protected Eh: number = SHA384_IV[8] | 0;\n protected El: number = SHA384_IV[9] | 0;\n protected Fh: number = SHA384_IV[10] | 0;\n protected Fl: number = SHA384_IV[11] | 0;\n protected Gh: number = SHA384_IV[12] | 0;\n protected Gl: number = SHA384_IV[13] | 0;\n protected Hh: number = SHA384_IV[14] | 0;\n protected Hl: number = SHA384_IV[15] | 0;\n\n constructor() {\n super(48);\n }\n}\n\n/**\n * Truncated SHA512/256 and SHA512/224.\n * SHA512_IV is XORed with 0xa5a5a5a5a5a5a5a5, then used as \"intermediary\" IV of SHA512/t.\n * Then t hashes string to produce result IV.\n * See `test/misc/sha2-gen-iv.js`.\n */\n\n/** SHA512/224 IV */\nconst T224_IV = /* @__PURE__ */ Uint32Array.from([\n 0x8c3d37c8, 0x19544da2, 0x73e19966, 0x89dcd4d6, 0x1dfab7ae, 0x32ff9c82, 0x679dd514, 0x582f9fcf,\n 0x0f6d2b69, 0x7bd44da8, 0x77e36f73, 0x04c48942, 0x3f9d85a8, 0x6a1d36c8, 0x1112e6ad, 0x91d692a1,\n]);\n\n/** SHA512/256 IV */\nconst T256_IV = /* @__PURE__ */ Uint32Array.from([\n 0x22312194, 0xfc2bf72c, 0x9f555fa3, 0xc84c64c2, 0x2393b86b, 0x6f53b151, 0x96387719, 0x5940eabd,\n 0x96283ee2, 0xa88effe3, 0xbe5e1e25, 0x53863992, 0x2b0199fc, 0x2c85b8aa, 0x0eb72ddc, 0x81c52ca2,\n]);\n\nexport class SHA512_224 extends SHA512 {\n protected Ah: number = T224_IV[0] | 0;\n protected Al: number = T224_IV[1] | 0;\n protected Bh: number = T224_IV[2] | 0;\n protected Bl: number = T224_IV[3] | 0;\n protected Ch: number = T224_IV[4] | 0;\n protected Cl: number = T224_IV[5] | 0;\n protected Dh: number = T224_IV[6] | 0;\n protected Dl: number = T224_IV[7] | 0;\n protected Eh: number = T224_IV[8] | 0;\n protected El: number = T224_IV[9] | 0;\n protected Fh: number = T224_IV[10] | 0;\n protected Fl: number = T224_IV[11] | 0;\n protected Gh: number = T224_IV[12] | 0;\n protected Gl: number = T224_IV[13] | 0;\n protected Hh: number = T224_IV[14] | 0;\n protected Hl: number = T224_IV[15] | 0;\n\n constructor() {\n super(28);\n }\n}\n\nexport class SHA512_256 extends SHA512 {\n protected Ah: number = T256_IV[0] | 0;\n protected Al: number = T256_IV[1] | 0;\n protected Bh: number = T256_IV[2] | 0;\n protected Bl: number = T256_IV[3] | 0;\n protected Ch: number = T256_IV[4] | 0;\n protected Cl: number = T256_IV[5] | 0;\n protected Dh: number = T256_IV[6] | 0;\n protected Dl: number = T256_IV[7] | 0;\n protected Eh: number = T256_IV[8] | 0;\n protected El: number = T256_IV[9] | 0;\n protected Fh: number = T256_IV[10] | 0;\n protected Fl: number = T256_IV[11] | 0;\n protected Gh: number = T256_IV[12] | 0;\n protected Gl: number = T256_IV[13] | 0;\n protected Hh: number = T256_IV[14] | 0;\n protected Hl: number = T256_IV[15] | 0;\n\n constructor() {\n super(32);\n }\n}\n\n/**\n * SHA2-256 hash function from RFC 4634.\n *\n * It is the fastest JS hash, even faster than Blake3.\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n */\nexport const sha256: CHash = /* @__PURE__ */ createHasher(() => new SHA256());\n/** SHA2-224 hash function from RFC 4634 */\nexport const sha224: CHash = /* @__PURE__ */ createHasher(() => new SHA224());\n\n/** SHA2-512 hash function from RFC 4634. */\nexport const sha512: CHash = /* @__PURE__ */ createHasher(() => new SHA512());\n/** SHA2-384 hash function from RFC 4634. */\nexport const sha384: CHash = /* @__PURE__ */ createHasher(() => new SHA384());\n\n/**\n * SHA2-512/256 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_256: CHash = /* @__PURE__ */ createHasher(() => new SHA512_256());\n/**\n * SHA2-512/224 \"truncated\" hash function, with improved resistance to length extension attacks.\n * See the paper on [truncated SHA512](https://eprint.iacr.org/2010/548.pdf).\n */\nexport const sha512_224: CHash = /* @__PURE__ */ createHasher(() => new SHA512_224());\n", "/**\n * SHA2-256 a.k.a. sha256. In JS, it is the fastest hash, even faster than Blake3.\n *\n * To break sha256 using birthday attack, attackers need to try 2^128 hashes.\n * BTC network is doing 2^70 hashes/sec (2^95 hashes/year) as per 2025.\n *\n * Check out [FIPS 180-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.180-4.pdf).\n * @module\n * @deprecated\n */\nimport {\n SHA224 as SHA224n,\n sha224 as sha224n,\n SHA256 as SHA256n,\n sha256 as sha256n,\n} from './sha2.ts';\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA256: typeof SHA256n = SHA256n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha256: typeof sha256n = sha256n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA224: typeof SHA224n = SHA224n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha224: typeof sha224n = sha224n;\n", "/**\n * SHA2-512 a.k.a. sha512 and sha384. It is slower than sha256 in js because u64 operations are slow.\n *\n * Check out [RFC 4634](https://datatracker.ietf.org/doc/html/rfc4634) and\n * [the paper on truncated SHA512/256](https://eprint.iacr.org/2010/548.pdf).\n * @module\n * @deprecated\n */\nimport {\n SHA384 as SHA384n,\n sha384 as sha384n,\n sha512_224 as sha512_224n,\n SHA512_224 as SHA512_224n,\n sha512_256 as sha512_256n,\n SHA512_256 as SHA512_256n,\n SHA512 as SHA512n,\n sha512 as sha512n,\n} from './sha2.ts';\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA512: typeof SHA512n = SHA512n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha512: typeof sha512n = sha512n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA384: typeof SHA384n = SHA384n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha384: typeof sha384n = sha384n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA512_224: typeof SHA512_224n = SHA512_224n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha512_224: typeof sha512_224n = sha512_224n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const SHA512_256: typeof SHA512_256n = SHA512_256n;\n/** @deprecated Use import from `noble/hashes/sha2` module */\nexport const sha512_256: typeof sha512_256n = sha512_256n;\n", null, null, null, null, null, "'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n\tvalue: true\n});\nexports['default'] = symbolObservablePonyfill;\nfunction symbolObservablePonyfill(root) {\n\tvar result;\n\tvar _Symbol = root.Symbol;\n\n\tif (typeof _Symbol === 'function') {\n\t\tif (_Symbol.observable) {\n\t\t\tresult = _Symbol.observable;\n\t\t} else {\n\n\t\t\t// This just needs to be something that won't trample other user's Symbol.for use\n\t\t\t// It also will guide people to the source of their issues, if this is problematic.\n\t\t\t// META: It's a resource locator!\n\t\t\tresult = _Symbol['for']('https://github.com/benlesh/symbol-observable');\n\t\t\ttry {\n\t\t\t\t_Symbol.observable = result;\n\t\t\t} catch (err) {\n\t\t\t\t// Do nothing. In some environments, users have frozen `Symbol` for security reasons,\n\t\t\t\t// if it is frozen assigning to it will throw. In this case, we don't care, because\n\t\t\t\t// they will need to use the returned value from the ponyfill.\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};", "module.exports = require('./lib/ponyfill');\n", "'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n", "'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n", "'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n", "'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n", "'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n", "'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n", "'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n", "'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n", "'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n", "'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n", "'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar defineDataProperty = require('define-data-property');\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar supportsDescriptors = require('has-property-descriptors')();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object) {\n\t\tif (predicate === true) {\n\t\t\tif (object[name] === value) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t} else if (!isFunction(predicate) || !predicate()) {\n\t\t\treturn;\n\t\t}\n\t}\n\n\tif (supportsDescriptors) {\n\t\tdefineDataProperty(object, name, value, true);\n\t} else {\n\t\tdefineDataProperty(object, name, value);\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n", "/* eslint no-negated-condition: 0, no-new-func: 0 */\n\n'use strict';\n\nif (typeof self !== 'undefined') {\n\tmodule.exports = self;\n} else if (typeof window !== 'undefined') {\n\tmodule.exports = window;\n} else {\n\tmodule.exports = Function('return this')();\n}\n", "'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\tif (typeof global !== 'object' || !global || global.Math !== Math || global.Array !== Array) {\n\t\treturn implementation;\n\t}\n\treturn global;\n};\n", "'use strict';\n\nvar define = require('define-properties');\nvar gOPD = require('gopd');\nvar getPolyfill = require('./polyfill');\n\nmodule.exports = function shimGlobal() {\n\tvar polyfill = getPolyfill();\n\tif (define.supportsDescriptors) {\n\t\tvar descriptor = gOPD(polyfill, 'globalThis');\n\t\tif (\n\t\t\t!descriptor\n\t\t\t|| (\n\t\t\t\tdescriptor.configurable\n\t\t\t\t&& (descriptor.enumerable || !descriptor.writable || globalThis !== polyfill)\n\t\t\t)\n\t\t) {\n\t\t\tObject.defineProperty(polyfill, 'globalThis', {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\tvalue: polyfill,\n\t\t\t\twritable: true\n\t\t\t});\n\t\t}\n\t} else if (typeof globalThis !== 'object' || globalThis !== polyfill) {\n\t\tpolyfill.globalThis = polyfill;\n\t}\n\treturn polyfill;\n};\n", "'use strict';\n\nvar defineProperties = require('define-properties');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = getPolyfill();\n\nvar getGlobal = function () { return polyfill; };\n\ndefineProperties(getGlobal, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = getGlobal;\n", "import ponyfillSymbolObservable from 'symbol-observable/ponyfill';\nimport { getPolyfill as getGlobalThis } from 'globalthis';\n\nconst $$observable = ponyfillSymbolObservable(getGlobalThis());\n\nconst NO = {};\nfunction noop() { }\n\nfunction cp(a: Array): Array {\n const l = a.length;\n const b = Array(l);\n for (let i = 0; i < l; ++i) b[i] = a[i];\n return b;\n}\n\nfunction and(f1: (t: T) => boolean, f2: (t: T) => boolean): (t: T) => boolean {\n return function andFn(t: T): boolean {\n return f1(t) && f2(t);\n };\n}\n\ninterface FContainer {\n f(t: T): R;\n}\n\nfunction _try(c: FContainer, t: T, u: Stream): R | {} {\n try {\n return c.f(t);\n } catch (e) {\n u._e(e);\n return NO;\n }\n}\n\nexport interface InternalListener {\n _n: (v: T) => void;\n _e: (err: any) => void;\n _c: () => void;\n}\n\nconst NO_IL: InternalListener = {\n _n: noop,\n _e: noop,\n _c: noop,\n};\n\nexport interface InternalProducer {\n _start(listener: InternalListener): void;\n _stop: () => void;\n}\n\nexport interface OutSender {\n out: Stream;\n}\n\nexport interface Operator extends InternalProducer, InternalListener, OutSender {\n type: string;\n ins: Stream;\n _start(out: Stream): void;\n}\n\nexport interface Aggregator extends InternalProducer, OutSender {\n type: string;\n insArr: Array>;\n _start(out: Stream): void;\n}\n\nexport interface Producer {\n start: (listener: Listener) => void;\n stop: () => void;\n}\n\nexport interface Listener {\n next: (x: T) => void;\n error: (err: any) => void;\n complete: () => void;\n}\n\nexport interface Subscription {\n unsubscribe(): void;\n}\n\nexport interface Observable {\n subscribe(listener: Listener): Subscription;\n}\n\n// mutates the input\nfunction internalizeProducer(producer: Producer & Partial>) {\n producer._start = function _start(il: InternalListener & Partial>) {\n il.next = il._n;\n il.error = il._e;\n il.complete = il._c;\n this.start(il as Listener);\n };\n producer._stop = producer.stop;\n}\n\nclass StreamSub implements Subscription {\n constructor(private _stream: Stream, private _listener: InternalListener) { }\n\n unsubscribe(): void {\n this._stream._remove(this._listener);\n }\n}\n\nclass Observer implements Listener {\n constructor(private _listener: InternalListener) { }\n\n next(value: T) {\n this._listener._n(value);\n }\n\n error(err: any) {\n this._listener._e(err);\n }\n\n complete() {\n this._listener._c();\n }\n}\n\nclass FromObservable implements InternalProducer {\n public type = 'fromObservable';\n public ins: Observable;\n public out?: Stream;\n private active: boolean;\n private _sub: Subscription | undefined;\n\n constructor(observable: Observable) {\n this.ins = observable;\n this.active = false;\n }\n\n _start(out: Stream) {\n this.out = out;\n this.active = true;\n this._sub = this.ins.subscribe(new Observer(out));\n if (!this.active) this._sub.unsubscribe();\n }\n\n _stop() {\n if (this._sub) this._sub.unsubscribe();\n this.active = false;\n }\n}\n\nexport interface MergeSignature {\n (): Stream;\n (s1: Stream): Stream;\n (\n s1: Stream,\n s2: Stream): Stream;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream): Stream;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream): Stream;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream): Stream;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream): Stream;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream,\n s7: Stream): Stream;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream,\n s7: Stream,\n s8: Stream): Stream;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream,\n s7: Stream,\n s8: Stream,\n s9: Stream): Stream;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream,\n s7: Stream,\n s8: Stream,\n s9: Stream,\n s10: Stream): Stream;\n (...stream: Array>): Stream;\n}\n\nclass Merge implements Aggregator, InternalListener {\n public type = 'merge';\n public insArr: Array>;\n public out: Stream;\n private ac: number; // ac is activeCount\n\n constructor(insArr: Array>) {\n this.insArr = insArr;\n this.out = NO as Stream;\n this.ac = 0;\n }\n\n _start(out: Stream): void {\n this.out = out;\n const s = this.insArr;\n const L = s.length;\n this.ac = L;\n for (let i = 0; i < L; i++) s[i]._add(this);\n }\n\n _stop(): void {\n const s = this.insArr;\n const L = s.length;\n for (let i = 0; i < L; i++) s[i]._remove(this);\n this.out = NO as Stream;\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n u._n(t);\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n if (--this.ac <= 0) {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n }\n}\n\nexport interface CombineSignature {\n (): Stream>;\n (s1: Stream): Stream<[T1]>;\n (\n s1: Stream,\n s2: Stream): Stream<[T1, T2]>;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream): Stream<[T1, T2, T3]>;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream): Stream<[T1, T2, T3, T4]>;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream): Stream<[T1, T2, T3, T4, T5]>;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream): Stream<[T1, T2, T3, T4, T5, T6]>;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream,\n s7: Stream): Stream<[T1, T2, T3, T4, T5, T6, T7]>;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream,\n s7: Stream,\n s8: Stream): Stream<[T1, T2, T3, T4, T5, T6, T7, T8]>;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream,\n s7: Stream,\n s8: Stream,\n s9: Stream): Stream<[T1, T2, T3, T4, T5, T6, T7, T8, T9]>;\n (\n s1: Stream,\n s2: Stream,\n s3: Stream,\n s4: Stream,\n s5: Stream,\n s6: Stream,\n s7: Stream,\n s8: Stream,\n s9: Stream,\n s10: Stream): Stream<[T1, T2, T3, T4, T5, T6, T7, T8, T9, T10]>;\n (...stream: Array>): Stream>;\n (...stream: Array>): Stream>;\n}\n\nclass CombineListener implements InternalListener, OutSender> {\n private i: number;\n public out: Stream>;\n private p: Combine;\n\n constructor(i: number, out: Stream>, p: Combine) {\n this.i = i;\n this.out = out;\n this.p = p;\n p.ils.push(this);\n }\n\n _n(t: T): void {\n const p = this.p, out = this.out;\n if (out === NO) return;\n if (p.up(t, this.i)) {\n const b = cp(p.vals);\n out._n(b);\n }\n }\n\n _e(err: any): void {\n const out = this.out;\n if (out === NO) return;\n out._e(err);\n }\n\n _c(): void {\n const p = this.p;\n if (p.out === NO) return;\n if (--p.Nc === 0) p.out._c();\n }\n}\n\nclass Combine implements Aggregator> {\n public type = 'combine';\n public insArr: Array>;\n public out: Stream>;\n public ils: Array>;\n public Nc: number; // *N*umber of streams still to send *c*omplete\n public Nn: number; // *N*umber of streams still to send *n*ext\n public vals: Array;\n\n constructor(insArr: Array>) {\n this.insArr = insArr;\n this.out = NO as Stream>;\n this.ils = [];\n this.Nc = this.Nn = 0;\n this.vals = [];\n }\n\n up(t: any, i: number): boolean {\n const v = this.vals[i];\n const Nn = !this.Nn ? 0 : v === NO ? --this.Nn : this.Nn;\n this.vals[i] = t;\n return Nn === 0;\n }\n\n _start(out: Stream>): void {\n this.out = out;\n const s = this.insArr;\n const n = this.Nc = this.Nn = s.length;\n const vals = this.vals = new Array(n);\n if (n === 0) {\n out._n([]);\n out._c();\n } else {\n for (let i = 0; i < n; i++) {\n vals[i] = NO;\n s[i]._add(new CombineListener(i, out, this));\n }\n }\n }\n\n _stop(): void {\n const s = this.insArr;\n const n = s.length;\n const ils = this.ils;\n for (let i = 0; i < n; i++) s[i]._remove(ils[i]);\n this.out = NO as Stream>;\n this.ils = [];\n this.vals = [];\n }\n}\n\nclass FromArray implements InternalProducer {\n public type = 'fromArray';\n public a: Array;\n\n constructor(a: Array) {\n this.a = a;\n }\n\n _start(out: InternalListener): void {\n const a = this.a;\n for (let i = 0, n = a.length; i < n; i++) out._n(a[i]);\n out._c();\n }\n\n _stop(): void {\n }\n}\n\nclass FromPromise implements InternalProducer {\n public type = 'fromPromise';\n public on: boolean;\n public p: PromiseLike;\n\n constructor(p: PromiseLike) {\n this.on = false;\n this.p = p;\n }\n\n _start(out: InternalListener): void {\n const prod = this;\n this.on = true;\n this.p.then(\n (v: T) => {\n if (prod.on) {\n out._n(v);\n out._c();\n }\n },\n (e: any) => {\n out._e(e);\n },\n ).then(noop, (err: any) => {\n setTimeout(() => { throw err; });\n });\n }\n\n _stop(): void {\n this.on = false;\n }\n}\n\nclass Periodic implements InternalProducer {\n public type = 'periodic';\n public period: number;\n private intervalID: any;\n private i: number;\n\n constructor(period: number) {\n this.period = period;\n this.intervalID = -1;\n this.i = 0;\n }\n\n _start(out: InternalListener): void {\n const self = this;\n function intervalHandler() { out._n(self.i++); }\n this.intervalID = setInterval(intervalHandler, this.period);\n }\n\n _stop(): void {\n if (this.intervalID !== -1) clearInterval(this.intervalID);\n this.intervalID = -1;\n this.i = 0;\n }\n}\n\nclass Debug implements Operator {\n public type = 'debug';\n public ins: Stream;\n public out: Stream;\n private s: (t: T) => any; // spy\n private l: string; // label\n\n constructor(ins: Stream);\n constructor(ins: Stream, arg?: string);\n constructor(ins: Stream, arg?: (t: T) => any);\n constructor(ins: Stream, arg?: string | ((t: T) => any));\n constructor(ins: Stream, arg?: string | ((t: T) => any) | undefined) {\n this.ins = ins;\n this.out = NO as Stream;\n this.s = noop;\n this.l = '';\n if (typeof arg === 'string') this.l = arg; else if (typeof arg === 'function') this.s = arg;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.out = NO as Stream;\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n const s = this.s, l = this.l;\n if (s !== noop) {\n try {\n s(t);\n } catch (e) {\n u._e(e);\n }\n } else if (l) console.log(l + ':', t); else console.log(t);\n u._n(t);\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n}\n\nclass Drop implements Operator {\n public type = 'drop';\n public ins: Stream;\n public out: Stream;\n public max: number;\n private dropped: number;\n\n constructor(max: number, ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n this.max = max;\n this.dropped = 0;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.dropped = 0;\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.out = NO as Stream;\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n if (this.dropped++ >= this.max) u._n(t);\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n}\n\nclass EndWhenListener implements InternalListener {\n private out: Stream;\n private op: EndWhen;\n\n constructor(out: Stream, op: EndWhen) {\n this.out = out;\n this.op = op;\n }\n\n _n() {\n this.op.end();\n }\n\n _e(err: any) {\n this.out._e(err);\n }\n\n _c() {\n this.op.end();\n }\n}\n\nclass EndWhen implements Operator {\n public type = 'endWhen';\n public ins: Stream;\n public out: Stream;\n public o: Stream; // o = other\n private oil: InternalListener; // oil = other InternalListener\n\n constructor(o: Stream, ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n this.o = o;\n this.oil = NO_IL;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.o._add(this.oil = new EndWhenListener(out, this));\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.o._remove(this.oil);\n this.out = NO as Stream;\n this.oil = NO_IL;\n }\n\n end(): void {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n u._n(t);\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n this.end();\n }\n}\n\nclass Filter implements Operator {\n public type = 'filter';\n public ins: Stream;\n public out: Stream;\n public f: (t: T) => boolean;\n\n constructor(passes: (t: T) => boolean, ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n this.f = passes;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.out = NO as Stream;\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n const r = _try(this, t, u);\n if (r === NO || !r) return;\n u._n(t);\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n}\n\nclass FlattenListener implements InternalListener {\n private out: Stream;\n private op: Flatten;\n\n constructor(out: Stream, op: Flatten) {\n this.out = out;\n this.op = op;\n }\n\n _n(t: T) {\n this.out._n(t);\n }\n\n _e(err: any) {\n this.out._e(err);\n }\n\n _c() {\n this.op.inner = NO as Stream;\n this.op.less();\n }\n}\n\nclass Flatten implements Operator, T> {\n public type = 'flatten';\n public ins: Stream>;\n public out: Stream;\n private open: boolean;\n public inner: Stream; // Current inner Stream\n private il: InternalListener; // Current inner InternalListener\n\n constructor(ins: Stream>) {\n this.ins = ins;\n this.out = NO as Stream;\n this.open = true;\n this.inner = NO as Stream;\n this.il = NO_IL;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.open = true;\n this.inner = NO as Stream;\n this.il = NO_IL;\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n if (this.inner !== NO) this.inner._remove(this.il);\n this.out = NO as Stream;\n this.open = true;\n this.inner = NO as Stream;\n this.il = NO_IL;\n }\n\n less(): void {\n const u = this.out;\n if (u === NO) return;\n if (!this.open && this.inner === NO) u._c();\n }\n\n _n(s: Stream) {\n const u = this.out;\n if (u === NO) return;\n const { inner, il } = this;\n if (inner !== NO && il !== NO_IL) inner._remove(il);\n (this.inner = s)._add(this.il = new FlattenListener(u, this));\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n this.open = false;\n this.less();\n }\n}\n\nclass Fold implements Operator {\n public type = 'fold';\n public ins: Stream;\n public out: Stream;\n public f: (t: T) => R;\n public seed: R;\n private acc: R; // initialized as seed\n\n constructor(f: (acc: R, t: T) => R, seed: R, ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n this.f = (t: T) => f(this.acc, t);\n this.acc = this.seed = seed;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.acc = this.seed;\n out._n(this.acc);\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.out = NO as Stream;\n this.acc = this.seed;\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n const r = _try(this, t, u);\n if (r === NO) return;\n u._n(this.acc = r as R);\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n}\n\nclass Last implements Operator {\n public type = 'last';\n public ins: Stream;\n public out: Stream;\n private has: boolean;\n private val: T;\n\n constructor(ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n this.has = false;\n this.val = NO as T;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.has = false;\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.out = NO as Stream;\n this.val = NO as T;\n }\n\n _n(t: T) {\n this.has = true;\n this.val = t;\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n const u = this.out;\n if (u === NO) return;\n if (this.has) {\n u._n(this.val);\n u._c();\n } else u._e(new Error('last() failed because input stream completed'));\n }\n}\n\nclass MapOp implements Operator {\n public type = 'map';\n public ins: Stream;\n public out: Stream;\n public f: (t: T) => R;\n\n constructor(project: (t: T) => R, ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n this.f = project;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.out = NO as Stream;\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n const r = _try(this, t, u);\n if (r === NO) return;\n u._n(r as R);\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n}\n\nclass Remember implements InternalProducer {\n public type = 'remember';\n public ins: Stream;\n public out: Stream;\n\n constructor(ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.ins._add(out);\n }\n\n _stop(): void {\n this.ins._remove(this.out);\n this.out = NO as Stream;\n }\n}\n\nclass ReplaceError implements Operator {\n public type = 'replaceError';\n public ins: Stream;\n public out: Stream;\n public f: (err: any) => Stream;\n\n constructor(replacer: (err: any) => Stream, ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n this.f = replacer;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.out = NO as Stream;\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n u._n(t);\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n try {\n this.ins._remove(this);\n (this.ins = this.f(err))._add(this);\n } catch (e) {\n u._e(e);\n }\n }\n\n _c() {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n}\n\nclass StartWith implements InternalProducer {\n public type = 'startWith';\n public ins: Stream;\n public out: Stream;\n public val: T;\n\n constructor(ins: Stream, val: T) {\n this.ins = ins;\n this.out = NO as Stream;\n this.val = val;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.out._n(this.val);\n this.ins._add(out);\n }\n\n _stop(): void {\n this.ins._remove(this.out);\n this.out = NO as Stream;\n }\n}\n\nclass Take implements Operator {\n public type = 'take';\n public ins: Stream;\n public out: Stream;\n public max: number;\n private taken: number;\n\n constructor(max: number, ins: Stream) {\n this.ins = ins;\n this.out = NO as Stream;\n this.max = max;\n this.taken = 0;\n }\n\n _start(out: Stream): void {\n this.out = out;\n this.taken = 0;\n if (this.max <= 0) out._c(); else this.ins._add(this);\n }\n\n _stop(): void {\n this.ins._remove(this);\n this.out = NO as Stream;\n }\n\n _n(t: T) {\n const u = this.out;\n if (u === NO) return;\n const m = ++this.taken;\n if (m < this.max) u._n(t); else if (m === this.max) {\n u._n(t);\n u._c();\n }\n }\n\n _e(err: any) {\n const u = this.out;\n if (u === NO) return;\n u._e(err);\n }\n\n _c() {\n const u = this.out;\n if (u === NO) return;\n u._c();\n }\n}\n\nexport class Stream implements InternalListener {\n public _prod: InternalProducer;\n protected _ils: Array>; // 'ils' = Internal listeners\n protected _stopID: any;\n protected _dl: InternalListener; // the debug listener\n protected _d: boolean; // flag indicating the existence of the debug listener\n protected _target: Stream | null; // imitation target if this Stream will imitate\n protected _err: any;\n\n constructor(producer?: InternalProducer) {\n this._prod = producer || NO as InternalProducer;\n this._ils = [];\n this._stopID = NO;\n this._dl = NO as InternalListener;\n this._d = false;\n this._target = null;\n this._err = NO;\n }\n\n _n(t: T): void {\n const a = this._ils;\n const L = a.length;\n if (this._d) this._dl._n(t);\n if (L == 1) a[0]._n(t); else if (L == 0) return; else {\n const b = cp(a);\n for (let i = 0; i < L; i++) b[i]._n(t);\n }\n }\n\n _e(err: any): void {\n if (this._err !== NO) return;\n this._err = err;\n const a = this._ils;\n const L = a.length;\n this._x();\n if (this._d) this._dl._e(err);\n if (L == 1) a[0]._e(err); else if (L == 0) return; else {\n const b = cp(a);\n for (let i = 0; i < L; i++) b[i]._e(err);\n }\n if (!this._d && L == 0) throw this._err;\n }\n\n _c(): void {\n const a = this._ils;\n const L = a.length;\n this._x();\n if (this._d) this._dl._c();\n if (L == 1) a[0]._c(); else if (L == 0) return; else {\n const b = cp(a);\n for (let i = 0; i < L; i++) b[i]._c();\n }\n }\n\n _x(): void { // tear down logic, after error or complete\n if (this._ils.length === 0) return;\n if (this._prod !== NO) this._prod._stop();\n this._err = NO;\n this._ils = [];\n }\n\n _stopNow() {\n // WARNING: code that calls this method should\n // first check if this._prod is valid (not `NO`)\n this._prod._stop();\n this._err = NO;\n this._stopID = NO;\n }\n\n _add(il: InternalListener): void {\n const ta = this._target;\n if (ta) return ta._add(il);\n const a = this._ils;\n a.push(il);\n if (a.length > 1) return;\n if (this._stopID !== NO) {\n clearTimeout(this._stopID);\n this._stopID = NO;\n } else {\n const p = this._prod;\n if (p !== NO) p._start(this);\n }\n }\n\n _remove(il: InternalListener): void {\n const ta = this._target;\n if (ta) return ta._remove(il);\n const a = this._ils;\n const i = a.indexOf(il);\n if (i > -1) {\n a.splice(i, 1);\n if (this._prod !== NO && a.length <= 0) {\n this._err = NO;\n this._stopID = setTimeout(() => this._stopNow());\n } else if (a.length === 1) {\n this._pruneCycles();\n }\n }\n }\n\n // If all paths stemming from `this` stream eventually end at `this`\n // stream, then we remove the single listener of `this` stream, to\n // force it to end its execution and dispose resources. This method\n // assumes as a precondition that this._ils has just one listener.\n _pruneCycles() {\n if (this._hasNoSinks(this, [])) this._remove(this._ils[0]);\n }\n\n // Checks whether *there is no* path starting from `x` that leads to an end\n // listener (sink) in the stream graph, following edges A->B where B is a\n // listener of A. This means these paths constitute a cycle somehow. Is given\n // a trace of all visited nodes so far.\n _hasNoSinks(x: InternalListener, trace: Array): boolean {\n if (trace.indexOf(x) !== -1)\n return true; else\n if ((x as any as OutSender).out === this)\n return true; else\n if ((x as any as OutSender).out && (x as any as OutSender).out !== NO)\n return this._hasNoSinks((x as any as OutSender).out, trace.concat(x)); else\n if ((x as Stream)._ils) {\n for (let i = 0, N = (x as Stream)._ils.length; i < N; i++)\n if (!this._hasNoSinks((x as Stream)._ils[i], trace.concat(x)))\n return false;\n return true;\n } else return false;\n }\n\n private ctor(): typeof Stream {\n return this instanceof MemoryStream ? MemoryStream : Stream;\n }\n\n /**\n * Adds a Listener to the Stream.\n *\n * @param {Listener} listener\n */\n addListener(listener: Partial>): void {\n (listener as InternalListener)._n = listener.next || noop;\n (listener as InternalListener)._e = listener.error || noop;\n (listener as InternalListener)._c = listener.complete || noop;\n this._add(listener as InternalListener);\n }\n\n /**\n * Removes a Listener from the Stream, assuming the Listener was added to it.\n *\n * @param {Listener} listener\n */\n removeListener(listener: Partial>): void {\n this._remove(listener as InternalListener);\n }\n\n /**\n * Adds a Listener to the Stream returning a Subscription to remove that\n * listener.\n *\n * @param {Listener} listener\n * @returns {Subscription}\n */\n subscribe(listener: Partial>): Subscription {\n this.addListener(listener);\n return new StreamSub(this, listener as InternalListener);\n }\n\n /**\n * Add interop between most.js and RxJS 5\n *\n * @returns {Stream}\n */\n [$$observable](): Stream {\n return this;\n }\n\n /**\n * Creates a new Stream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {Stream}\n */\n static create(producer?: Producer): Stream {\n if (producer) {\n if (typeof producer.start !== 'function'\n || typeof producer.stop !== 'function')\n throw new Error('producer requires both start and stop functions');\n internalizeProducer(producer); // mutates the input\n }\n return new Stream(producer as InternalProducer & Producer);\n }\n\n /**\n * Creates a new MemoryStream given a Producer.\n *\n * @factory true\n * @param {Producer} producer An optional Producer that dictates how to\n * start, generate events, and stop the Stream.\n * @return {MemoryStream}\n */\n static createWithMemory(producer?: Producer): MemoryStream {\n if (producer) internalizeProducer(producer); // mutates the input\n return new MemoryStream(producer as InternalProducer & Producer);\n }\n\n /**\n * Creates a Stream that does nothing when started. It never emits any event.\n *\n * Marble diagram:\n *\n * ```text\n * never\n * -----------------------\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n static never(): Stream {\n return new Stream({ _start: noop, _stop: noop });\n }\n\n /**\n * Creates a Stream that immediately emits the \"complete\" notification when\n * started, and that's it.\n *\n * Marble diagram:\n *\n * ```text\n * empty\n * -|\n * ```\n *\n * @factory true\n * @return {Stream}\n */\n static empty(): Stream {\n return new Stream({\n _start(il: InternalListener) { il._c(); },\n _stop: noop,\n });\n }\n\n /**\n * Creates a Stream that immediately emits an \"error\" notification with the\n * value you passed as the `error` argument when the stream starts, and that's\n * it.\n *\n * Marble diagram:\n *\n * ```text\n * throw(X)\n * -X\n * ```\n *\n * @factory true\n * @param error The error event to emit on the created stream.\n * @return {Stream}\n */\n static throw(error: any): Stream {\n return new Stream({\n _start(il: InternalListener) { il._e(error); },\n _stop: noop,\n });\n }\n\n /**\n * Creates a stream from an Array, Promise, or an Observable.\n *\n * @factory true\n * @param {Array|PromiseLike|Observable} input The input to make a stream from.\n * @return {Stream}\n */\n static from(input: PromiseLike | Stream | Array | Observable): Stream {\n if (typeof input[$$observable] === 'function')\n return Stream.fromObservable(input as Observable); else\n if (typeof (input as PromiseLike).then === 'function')\n return Stream.fromPromise(input as PromiseLike); else\n if (Array.isArray(input))\n return Stream.fromArray(input);\n\n throw new TypeError(`Type of input to from() must be an Array, Promise, or Observable`);\n }\n\n /**\n * Creates a Stream that immediately emits the arguments that you give to\n * *of*, then completes.\n *\n * Marble diagram:\n *\n * ```text\n * of(1,2,3)\n * 123|\n * ```\n *\n * @factory true\n * @param a The first value you want to emit as an event on the stream.\n * @param b The second value you want to emit as an event on the stream. One\n * or more of these values may be given as arguments.\n * @return {Stream}\n */\n static of(...items: Array): Stream {\n return Stream.fromArray(items);\n }\n\n /**\n * Converts an array to a stream. The returned stream will emit synchronously\n * all the items in the array, and then complete.\n *\n * Marble diagram:\n *\n * ```text\n * fromArray([1,2,3])\n * 123|\n * ```\n *\n * @factory true\n * @param {Array} array The array to be converted as a stream.\n * @return {Stream}\n */\n static fromArray(array: Array): Stream {\n return new Stream(new FromArray(array));\n }\n\n /**\n * Converts a promise to a stream. The returned stream will emit the resolved\n * value of the promise, and then complete. However, if the promise is\n * rejected, the stream will emit the corresponding error.\n *\n * Marble diagram:\n *\n * ```text\n * fromPromise( ----42 )\n * -----------------42|\n * ```\n *\n * @factory true\n * @param {PromiseLike} promise The promise to be converted as a stream.\n * @return {Stream}\n */\n static fromPromise(promise: PromiseLike): Stream {\n return new Stream(new FromPromise(promise));\n }\n\n /**\n * Converts an Observable into a Stream.\n *\n * @factory true\n * @param {any} observable The observable to be converted as a stream.\n * @return {Stream}\n */\n static fromObservable(obs: { subscribe: any }): Stream {\n if ((obs as Stream).endWhen !== undefined) return obs as Stream;\n const o = typeof obs[$$observable] === 'function' ? obs[$$observable]() : obs;\n return new Stream(new FromObservable(o));\n }\n\n /**\n * Creates a stream that periodically emits incremental numbers, every\n * `period` milliseconds.\n *\n * Marble diagram:\n *\n * ```text\n * periodic(1000)\n * ---0---1---2---3---4---...\n * ```\n *\n * @factory true\n * @param {number} period The interval in milliseconds to use as a rate of\n * emission.\n * @return {Stream}\n */\n static periodic(period: number): Stream {\n return new Stream(new Periodic(period));\n }\n\n /**\n * Blends multiple streams together, emitting events from all of them\n * concurrently.\n *\n * *merge* takes multiple streams as arguments, and creates a stream that\n * behaves like each of the argument streams, in parallel.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b----c---d------\n * merge\n * --1-a--2--b--3-c---d--4---\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to merge together with other streams.\n * @param {Stream} stream2 A stream to merge together with other streams. Two\n * or more streams may be given as arguments.\n * @return {Stream}\n */\n static merge: MergeSignature = function merge(...streams: Array>) {\n return new Stream(new Merge(streams));\n } as MergeSignature;\n\n /**\n * Combines multiple input streams together to return a stream whose events\n * are arrays that collect the latest events from each input stream.\n *\n * *combine* internally remembers the most recent event from each of the input\n * streams. When any of the input streams emits an event, that event together\n * with all the other saved events are combined into an array. That array will\n * be emitted on the output stream. It's essentially a way of joining together\n * the events from multiple streams.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3--------4---\n * ----a-----b-----c--d------\n * combine\n * ----1a-2a-2b-3b-3c-3d-4d--\n * ```\n *\n * @factory true\n * @param {Stream} stream1 A stream to combine together with other streams.\n * @param {Stream} stream2 A stream to combine together with other streams.\n * Multiple streams, not just two, may be given as arguments.\n * @return {Stream}\n */\n static combine: CombineSignature = function combine(...streams: Array>) {\n return new Stream>(new Combine(streams));\n } as CombineSignature;\n\n protected _map(project: (t: T) => U): Stream | MemoryStream {\n return new (this.ctor())(new MapOp(project, this));\n }\n\n /**\n * Transforms each event from the input Stream through a `project` function,\n * to get a Stream that emits those transformed events.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7------\n * map(i => i * 10)\n * --10--30-50----70-----\n * ```\n *\n * @param {Function} project A function of type `(t: T) => U` that takes event\n * `t` of type `T` from the input Stream and produces an event of type `U`, to\n * be emitted on the output Stream.\n * @return {Stream}\n */\n map(project: (t: T) => U): Stream {\n return this._map(project);\n }\n\n /**\n * It's like `map`, but transforms each input event to always the same\n * constant value on the output Stream.\n *\n * Marble diagram:\n *\n * ```text\n * --1---3--5-----7-----\n * mapTo(10)\n * --10--10-10----10----\n * ```\n *\n * @param projectedValue A value to emit on the output Stream whenever the\n * input Stream emits any value.\n * @return {Stream}\n */\n mapTo(projectedValue: U): Stream {\n const s = this.map(() => projectedValue);\n const op: Operator = s._prod as Operator;\n op.type = 'mapTo';\n return s;\n }\n\n filter(passes: (t: T) => t is S): Stream;\n filter(passes: (t: T) => boolean): Stream;\n /**\n * Only allows events that pass the test given by the `passes` argument.\n *\n * Each event from the input stream is given to the `passes` function. If the\n * function returns `true`, the event is forwarded to the output stream,\n * otherwise it is ignored and not forwarded.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2--3-----4-----5---6--7-8--\n * filter(i => i % 2 === 0)\n * ------2--------4---------6----8--\n * ```\n *\n * @param {Function} passes A function of type `(t: T) => boolean` that takes\n * an event from the input stream and checks if it passes, by returning a\n * boolean.\n * @return {Stream}\n */\n filter(passes: (t: T) => boolean): Stream {\n const p = this._prod;\n if (p instanceof Filter)\n return new Stream(new Filter(\n and((p as Filter).f, passes),\n (p as Filter).ins\n ));\n return new Stream(new Filter(passes, this));\n }\n\n /**\n * Lets the first `amount` many events from the input stream pass to the\n * output stream, then makes the output stream complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * take(3)\n * --a---b--c|\n * ```\n *\n * @param {number} amount How many events to allow from the input stream\n * before completing the output stream.\n * @return {Stream}\n */\n take(amount: number): Stream {\n return new (this.ctor())(new Take(amount, this));\n }\n\n /**\n * Ignores the first `amount` many events from the input stream, and then\n * after that starts forwarding events from the input stream to the output\n * stream.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c----d---e--\n * drop(3)\n * --------------d---e--\n * ```\n *\n * @param {number} amount How many events to ignore from the input stream\n * before forwarding all events from the input stream to the output stream.\n * @return {Stream}\n */\n drop(amount: number): Stream {\n return new Stream(new Drop(amount, this));\n }\n\n /**\n * When the input stream completes, the output stream will emit the last event\n * emitted by the input stream, and then will also complete.\n *\n * Marble diagram:\n *\n * ```text\n * --a---b--c--d----|\n * last()\n * -----------------d|\n * ```\n *\n * @return {Stream}\n */\n last(): Stream {\n return new Stream(new Last(this));\n }\n\n /**\n * Prepends the given `initial` value to the sequence of events emitted by the\n * input stream. The returned stream is a MemoryStream, which means it is\n * already `remember()`'d.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3---\n * startWith(0)\n * 0--1---2-----3---\n * ```\n *\n * @param initial The value or event to prepend.\n * @return {MemoryStream}\n */\n startWith(initial: T): MemoryStream {\n return new MemoryStream(new StartWith(this, initial));\n }\n\n /**\n * Uses another stream to determine when to complete the current stream.\n *\n * When the given `other` stream emits an event or completes, the output\n * stream will complete. Before that happens, the output stream will behaves\n * like the input stream.\n *\n * Marble diagram:\n *\n * ```text\n * ---1---2-----3--4----5----6---\n * endWhen( --------a--b--| )\n * ---1---2-----3--4--|\n * ```\n *\n * @param other Some other stream that is used to know when should the output\n * stream of this operator complete.\n * @return {Stream}\n */\n endWhen(other: Stream): Stream {\n return new (this.ctor())(new EndWhen(other, this));\n }\n\n /**\n * \"Folds\" the stream onto itself.\n *\n * Combines events from the past throughout\n * the entire execution of the input stream, allowing you to accumulate them\n * together. It's essentially like `Array.prototype.reduce`. The returned\n * stream is a MemoryStream, which means it is already `remember()`'d.\n *\n * The output stream starts by emitting the `seed` which you give as argument.\n * Then, when an event happens on the input stream, it is combined with that\n * seed value through the `accumulate` function, and the output value is\n * emitted on the output stream. `fold` remembers that output value as `acc`\n * (\"accumulator\"), and then when a new input event `t` happens, `acc` will be\n * combined with that to produce the new `acc` and so forth.\n *\n * Marble diagram:\n *\n * ```text\n * ------1-----1--2----1----1------\n * fold((acc, x) => acc + x, 3)\n * 3-----4-----5--7----8----9------\n * ```\n *\n * @param {Function} accumulate A function of type `(acc: R, t: T) => R` that\n * takes the previous accumulated value `acc` and the incoming event from the\n * input stream and produces the new accumulated value.\n * @param seed The initial accumulated value, of type `R`.\n * @return {MemoryStream}\n */\n fold(accumulate: (acc: R, t: T) => R, seed: R): MemoryStream {\n return new MemoryStream(new Fold(accumulate, seed, this));\n }\n\n /**\n * Replaces an error with another stream.\n *\n * When (and if) an error happens on the input stream, instead of forwarding\n * that error to the output stream, *replaceError* will call the `replace`\n * function which returns the stream that the output stream will replicate.\n * And, in case that new stream also emits an error, `replace` will be called\n * again to get another stream to start replicating.\n *\n * Marble diagram:\n *\n * ```text\n * --1---2-----3--4-----X\n * replaceError( () => --10--| )\n * --1---2-----3--4--------10--|\n * ```\n *\n * @param {Function} replace A function of type `(err) => Stream` that takes\n * the error that occurred on the input stream or on the previous replacement\n * stream and returns a new stream. The output stream will behave like the\n * stream that this function returns.\n * @return {Stream}\n */\n replaceError(replace: (err: any) => Stream): Stream {\n return new (this.ctor())(new ReplaceError(replace, this));\n }\n\n /**\n * Flattens a \"stream of streams\", handling only one nested stream at a time\n * (no concurrency).\n *\n * If the input stream is a stream that emits streams, then this operator will\n * return an output stream which is a flat stream: emits regular events. The\n * flattening happens without concurrency. It works like this: when the input\n * stream emits a nested stream, *flatten* will start imitating that nested\n * one. However, as soon as the next nested stream is emitted on the input\n * stream, *flatten* will forget the previous nested one it was imitating, and\n * will start imitating the new nested one.\n *\n * Marble diagram:\n *\n * ```text\n * --+--------+---------------\n * \\ \\\n * \\ ----1----2---3--\n * --a--b----c----d--------\n * flatten\n * -----a--b------1----2---3--\n * ```\n *\n * @return {Stream}\n */\n flatten(this: Stream | MemoryStream>): Stream {\n return new Stream(new Flatten(this));\n }\n\n /**\n * Passes the input stream to a custom operator, to produce an output stream.\n *\n * *compose* is a handy way of using an existing function in a chained style.\n * Instead of writing `outStream = f(inStream)` you can write\n * `outStream = inStream.compose(f)`.\n *\n * @param {function} operator A function that takes a stream as input and\n * returns a stream as well.\n * @return {Stream}\n */\n compose(operator: (stream: Stream) => U): U {\n return operator(this);\n }\n\n /**\n * Returns an output stream that behaves like the input stream, but also\n * remembers the most recent event that happens on the input stream, so that a\n * newly added listener will immediately receive that memorised event.\n *\n * @return {MemoryStream}\n */\n remember(): MemoryStream {\n return new MemoryStream(new Remember(this));\n }\n\n debug(): Stream;\n debug(labelOrSpy: string): Stream;\n debug(labelOrSpy: (t: T) => any): Stream;\n /**\n * Returns an output stream that identically behaves like the input stream,\n * but also runs a `spy` function for each event, to help you debug your app.\n *\n * *debug* takes a `spy` function as argument, and runs that for each event\n * happening on the input stream. If you don't provide the `spy` argument,\n * then *debug* will just `console.log` each event. This helps you to\n * understand the flow of events through some operator chain.\n *\n * Please note that if the output stream has no listeners, then it will not\n * start, which means `spy` will never run because no actual event happens in\n * that case.\n *\n * Marble diagram:\n *\n * ```text\n * --1----2-----3-----4--\n * debug\n * --1----2-----3-----4--\n * ```\n *\n * @param {function} labelOrSpy A string to use as the label when printing\n * debug information on the console, or a 'spy' function that takes an event\n * as argument, and does not need to return anything.\n * @return {Stream}\n */\n debug(labelOrSpy?: string | ((t: T) => any)): Stream {\n return new (this.ctor())(new Debug(this, labelOrSpy));\n }\n\n /**\n * *imitate* changes this current Stream to emit the same events that the\n * `other` given Stream does. This method returns nothing.\n *\n * This method exists to allow one thing: **circular dependency of streams**.\n * For instance, let's imagine that for some reason you need to create a\n * circular dependency where stream `first$` depends on stream `second$`\n * which in turn depends on `first$`:\n *\n * \n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var first$ = second$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * ```\n *\n * However, that is invalid JavaScript, because `second$` is undefined\n * on the first line. This is how *imitate* can help solve it:\n *\n * ```js\n * import delay from 'xstream/extra/delay'\n *\n * var secondProxy$ = xs.create();\n * var first$ = secondProxy$.map(x => x * 10).take(3);\n * var second$ = first$.map(x => x + 1).startWith(1).compose(delay(100));\n * secondProxy$.imitate(second$);\n * ```\n *\n * We create `secondProxy$` before the others, so it can be used in the\n * declaration of `first$`. Then, after both `first$` and `second$` are\n * defined, we hook `secondProxy$` with `second$` with `imitate()` to tell\n * that they are \"the same\". `imitate` will not trigger the start of any\n * stream, it just binds `secondProxy$` and `second$` together.\n *\n * The following is an example where `imitate()` is important in Cycle.js\n * applications. A parent component contains some child components. A child\n * has an action stream which is given to the parent to define its state:\n *\n * \n * ```js\n * const childActionProxy$ = xs.create();\n * const parent = Parent({...sources, childAction$: childActionProxy$});\n * const childAction$ = parent.state$.map(s => s.child.action$).flatten();\n * childActionProxy$.imitate(childAction$);\n * ```\n *\n * Note, though, that **`imitate()` does not support MemoryStreams**. If we\n * would attempt to imitate a MemoryStream in a circular dependency, we would\n * either get a race condition (where the symptom would be \"nothing happens\")\n * or an infinite cyclic emission of values. It's useful to think about\n * MemoryStreams as cells in a spreadsheet. It doesn't make any sense to\n * define a spreadsheet cell `A1` with a formula that depends on `B1` and\n * cell `B1` defined with a formula that depends on `A1`.\n *\n * If you find yourself wanting to use `imitate()` with a\n * MemoryStream, you should rework your code around `imitate()` to use a\n * Stream instead. Look for the stream in the circular dependency that\n * represents an event stream, and that would be a candidate for creating a\n * proxy Stream which then imitates the target Stream.\n *\n * @param {Stream} target The other stream to imitate on the current one. Must\n * not be a MemoryStream.\n */\n imitate(target: Stream): void {\n if (target instanceof MemoryStream)\n throw new Error('A MemoryStream was given to imitate(), but it only ' +\n 'supports a Stream. Read more about this restriction here: ' +\n 'https://github.com/staltz/xstream#faq');\n this._target = target;\n for (let ils = this._ils, N = ils.length, i = 0; i < N; i++) target._add(ils[i]);\n this._ils = [];\n }\n\n /**\n * Forces the Stream to emit the given value to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param value The \"next\" value you want to broadcast to all listeners of\n * this Stream.\n */\n shamefullySendNext(value: T) {\n this._n(value);\n }\n\n /**\n * Forces the Stream to emit the given error to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n *\n * @param {any} error The error you want to broadcast to all the listeners of\n * this Stream.\n */\n shamefullySendError(error: any) {\n this._e(error);\n }\n\n /**\n * Forces the Stream to emit the \"completed\" event to its listeners.\n *\n * As the name indicates, if you use this, you are most likely doing something\n * The Wrong Way. Please try to understand the reactive way before using this\n * method. Use it only when you know what you are doing.\n */\n shamefullySendComplete() {\n this._c();\n }\n\n /**\n * Adds a \"debug\" listener to the stream. There can only be one debug\n * listener, that's why this is 'setDebugListener'. To remove the debug\n * listener, just call setDebugListener(null).\n *\n * A debug listener is like any other listener. The only difference is that a\n * debug listener is \"stealthy\": its presence/absence does not trigger the\n * start/stop of the stream (or the producer inside the stream). This is\n * useful so you can inspect what is going on without changing the behavior\n * of the program. If you have an idle stream and you add a normal listener to\n * it, the stream will start executing. But if you set a debug listener on an\n * idle stream, it won't start executing (not until the first normal listener\n * is added).\n *\n * As the name indicates, we don't recommend using this method to build app\n * logic. In fact, in most cases the debug operator works just fine. Only use\n * this one if you know what you're doing.\n *\n * @param {Listener} listener\n */\n setDebugListener(listener: Partial> | null | undefined) {\n if (!listener) {\n this._d = false;\n this._dl = NO as InternalListener;\n } else {\n this._d = true;\n (listener as InternalListener)._n = listener.next || noop;\n (listener as InternalListener)._e = listener.error || noop;\n (listener as InternalListener)._c = listener.complete || noop;\n this._dl = listener as InternalListener;\n }\n }\n}\n\nexport class MemoryStream extends Stream {\n private _v?: T;\n private _has?: boolean = false;\n constructor(producer: InternalProducer) {\n super(producer);\n }\n\n _n(x: T) {\n this._v = x;\n this._has = true;\n super._n(x);\n }\n\n _add(il: InternalListener): void {\n const ta = this._target;\n if (ta) return ta._add(il);\n const a = this._ils;\n a.push(il);\n if (a.length > 1) {\n if (this._has) il._n(this._v!);\n return;\n }\n if (this._stopID !== NO) {\n if (this._has) il._n(this._v!);\n clearTimeout(this._stopID);\n this._stopID = NO;\n } else if (this._has) il._n(this._v!); else {\n const p = this._prod;\n if (p !== NO) p._start(this);\n }\n }\n\n _stopNow() {\n this._has = false;\n super._stopNow();\n }\n\n _x(): void {\n this._has = false;\n super._x();\n }\n\n map(project: (t: T) => U): MemoryStream {\n return this._map(project) as MemoryStream;\n }\n\n mapTo(projectedValue: U): MemoryStream {\n return super.mapTo(projectedValue) as MemoryStream;\n }\n\n take(amount: number): MemoryStream {\n return super.take(amount) as MemoryStream;\n }\n\n endWhen(other: Stream): MemoryStream {\n return super.endWhen(other) as MemoryStream;\n }\n\n replaceError(replace: (err: any) => Stream): MemoryStream {\n return super.replaceError(replace) as MemoryStream;\n }\n\n remember(): MemoryStream {\n return this;\n }\n\n debug(): MemoryStream;\n debug(labelOrSpy: string): MemoryStream;\n debug(labelOrSpy: (t: T) => any): MemoryStream;\n debug(labelOrSpy?: string | ((t: T) => any) | undefined): MemoryStream {\n return super.debug(labelOrSpy as any) as MemoryStream;\n }\n}\n\nexport { NO, NO_IL };\nconst xs = Stream;\ntype xs = Stream;\nexport default xs;\n", null, null, null, null, null, null, null, null, null, null, null, null, null, "/**\n * @license React\n * react.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function defineDeprecationWarning(methodName, info) {\n Object.defineProperty(Component.prototype, methodName, {\n get: function () {\n console.warn(\n \"%s(...) is deprecated in plain JavaScript React classes. %s\",\n info[0],\n info[1]\n );\n }\n });\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function warnNoop(publicInstance, callerName) {\n publicInstance =\n ((publicInstance = publicInstance.constructor) &&\n (publicInstance.displayName || publicInstance.name)) ||\n \"ReactClass\";\n var warningKey = publicInstance + \".\" + callerName;\n didWarnStateUpdateForUnmountedComponent[warningKey] ||\n (console.error(\n \"Can't call %s on a component that is not yet mounted. This is a no-op, but it might indicate a bug in your application. Instead, assign to `this.state` directly or define a `state = {};` class property with the desired state in the %s component.\",\n callerName,\n publicInstance\n ),\n (didWarnStateUpdateForUnmountedComponent[warningKey] = !0));\n }\n function Component(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function ComponentDummy() {}\n function PureComponent(props, context, updater) {\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n }\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkKeyStringCoercion(value) {\n try {\n testStringCoercion(value);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n if (JSCompiler_inline_result) {\n JSCompiler_inline_result = console;\n var JSCompiler_temp_const = JSCompiler_inline_result.error;\n var JSCompiler_inline_result$jscomp$0 =\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\";\n JSCompiler_temp_const.call(\n JSCompiler_inline_result,\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n JSCompiler_inline_result$jscomp$0\n );\n return testStringCoercion(value);\n }\n }\n function getComponentNameFromType(type) {\n if (null == type) return null;\n if (\"function\" === typeof type)\n return type.$$typeof === REACT_CLIENT_REFERENCE\n ? null\n : type.displayName || type.name || null;\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n return \"Fragment\";\n case REACT_PROFILER_TYPE:\n return \"Profiler\";\n case REACT_STRICT_MODE_TYPE:\n return \"StrictMode\";\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n case REACT_ACTIVITY_TYPE:\n return \"Activity\";\n }\n if (\"object\" === typeof type)\n switch (\n (\"number\" === typeof type.tag &&\n console.error(\n \"Received an unexpected object in getComponentNameFromType(). This is likely a bug in React. Please file an issue.\"\n ),\n type.$$typeof)\n ) {\n case REACT_PORTAL_TYPE:\n return \"Portal\";\n case REACT_CONTEXT_TYPE:\n return type.displayName || \"Context\";\n case REACT_CONSUMER_TYPE:\n return (type._context.displayName || \"Context\") + \".Consumer\";\n case REACT_FORWARD_REF_TYPE:\n var innerType = type.render;\n type = type.displayName;\n type ||\n ((type = innerType.displayName || innerType.name || \"\"),\n (type = \"\" !== type ? \"ForwardRef(\" + type + \")\" : \"ForwardRef\"));\n return type;\n case REACT_MEMO_TYPE:\n return (\n (innerType = type.displayName || null),\n null !== innerType\n ? innerType\n : getComponentNameFromType(type.type) || \"Memo\"\n );\n case REACT_LAZY_TYPE:\n innerType = type._payload;\n type = type._init;\n try {\n return getComponentNameFromType(type(innerType));\n } catch (x) {}\n }\n return null;\n }\n function getTaskName(type) {\n if (type === REACT_FRAGMENT_TYPE) return \"<>\";\n if (\n \"object\" === typeof type &&\n null !== type &&\n type.$$typeof === REACT_LAZY_TYPE\n )\n return \"<...>\";\n try {\n var name = getComponentNameFromType(type);\n return name ? \"<\" + name + \">\" : \"<...>\";\n } catch (x) {\n return \"<...>\";\n }\n }\n function getOwner() {\n var dispatcher = ReactSharedInternals.A;\n return null === dispatcher ? null : dispatcher.getOwner();\n }\n function UnknownOwner() {\n return Error(\"react-stack-top-frame\");\n }\n function hasValidKey(config) {\n if (hasOwnProperty.call(config, \"key\")) {\n var getter = Object.getOwnPropertyDescriptor(config, \"key\").get;\n if (getter && getter.isReactWarning) return !1;\n }\n return void 0 !== config.key;\n }\n function defineKeyPropWarningGetter(props, displayName) {\n function warnAboutAccessingKey() {\n specialPropKeyWarningShown ||\n ((specialPropKeyWarningShown = !0),\n console.error(\n \"%s: `key` is not a prop. Trying to access it will result in `undefined` being returned. If you need to access the same value within the child component, you should pass it as a different prop. (https://react.dev/link/special-props)\",\n displayName\n ));\n }\n warnAboutAccessingKey.isReactWarning = !0;\n Object.defineProperty(props, \"key\", {\n get: warnAboutAccessingKey,\n configurable: !0\n });\n }\n function elementRefGetterWithDeprecationWarning() {\n var componentName = getComponentNameFromType(this.type);\n didWarnAboutElementRef[componentName] ||\n ((didWarnAboutElementRef[componentName] = !0),\n console.error(\n \"Accessing element.ref was removed in React 19. ref is now a regular prop. It will be removed from the JSX Element type in a future release.\"\n ));\n componentName = this.props.ref;\n return void 0 !== componentName ? componentName : null;\n }\n function ReactElement(type, key, props, owner, debugStack, debugTask) {\n var refProp = props.ref;\n type = {\n $$typeof: REACT_ELEMENT_TYPE,\n type: type,\n key: key,\n props: props,\n _owner: owner\n };\n null !== (void 0 !== refProp ? refProp : null)\n ? Object.defineProperty(type, \"ref\", {\n enumerable: !1,\n get: elementRefGetterWithDeprecationWarning\n })\n : Object.defineProperty(type, \"ref\", { enumerable: !1, value: null });\n type._store = {};\n Object.defineProperty(type._store, \"validated\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: 0\n });\n Object.defineProperty(type, \"_debugInfo\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: null\n });\n Object.defineProperty(type, \"_debugStack\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugStack\n });\n Object.defineProperty(type, \"_debugTask\", {\n configurable: !1,\n enumerable: !1,\n writable: !0,\n value: debugTask\n });\n Object.freeze && (Object.freeze(type.props), Object.freeze(type));\n return type;\n }\n function cloneAndReplaceKey(oldElement, newKey) {\n newKey = ReactElement(\n oldElement.type,\n newKey,\n oldElement.props,\n oldElement._owner,\n oldElement._debugStack,\n oldElement._debugTask\n );\n oldElement._store &&\n (newKey._store.validated = oldElement._store.validated);\n return newKey;\n }\n function validateChildKeys(node) {\n isValidElement(node)\n ? node._store && (node._store.validated = 1)\n : \"object\" === typeof node &&\n null !== node &&\n node.$$typeof === REACT_LAZY_TYPE &&\n (\"fulfilled\" === node._payload.status\n ? isValidElement(node._payload.value) &&\n node._payload.value._store &&\n (node._payload.value._store.validated = 1)\n : node._store && (node._store.validated = 1));\n }\n function isValidElement(object) {\n return (\n \"object\" === typeof object &&\n null !== object &&\n object.$$typeof === REACT_ELEMENT_TYPE\n );\n }\n function escape(key) {\n var escaperLookup = { \"=\": \"=0\", \":\": \"=2\" };\n return (\n \"$\" +\n key.replace(/[=:]/g, function (match) {\n return escaperLookup[match];\n })\n );\n }\n function getElementKey(element, index) {\n return \"object\" === typeof element &&\n null !== element &&\n null != element.key\n ? (checkKeyStringCoercion(element.key), escape(\"\" + element.key))\n : index.toString(36);\n }\n function resolveThenable(thenable) {\n switch (thenable.status) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n default:\n switch (\n (\"string\" === typeof thenable.status\n ? thenable.then(noop, noop)\n : ((thenable.status = \"pending\"),\n thenable.then(\n function (fulfilledValue) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = fulfilledValue));\n },\n function (error) {\n \"pending\" === thenable.status &&\n ((thenable.status = \"rejected\"),\n (thenable.reason = error));\n }\n )),\n thenable.status)\n ) {\n case \"fulfilled\":\n return thenable.value;\n case \"rejected\":\n throw thenable.reason;\n }\n }\n throw thenable;\n }\n function mapIntoArray(children, array, escapedPrefix, nameSoFar, callback) {\n var type = typeof children;\n if (\"undefined\" === type || \"boolean\" === type) children = null;\n var invokeCallback = !1;\n if (null === children) invokeCallback = !0;\n else\n switch (type) {\n case \"bigint\":\n case \"string\":\n case \"number\":\n invokeCallback = !0;\n break;\n case \"object\":\n switch (children.$$typeof) {\n case REACT_ELEMENT_TYPE:\n case REACT_PORTAL_TYPE:\n invokeCallback = !0;\n break;\n case REACT_LAZY_TYPE:\n return (\n (invokeCallback = children._init),\n mapIntoArray(\n invokeCallback(children._payload),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n )\n );\n }\n }\n if (invokeCallback) {\n invokeCallback = children;\n callback = callback(invokeCallback);\n var childKey =\n \"\" === nameSoFar ? \".\" + getElementKey(invokeCallback, 0) : nameSoFar;\n isArrayImpl(callback)\n ? ((escapedPrefix = \"\"),\n null != childKey &&\n (escapedPrefix =\n childKey.replace(userProvidedKeyEscapeRegex, \"$&/\") + \"/\"),\n mapIntoArray(callback, array, escapedPrefix, \"\", function (c) {\n return c;\n }))\n : null != callback &&\n (isValidElement(callback) &&\n (null != callback.key &&\n ((invokeCallback && invokeCallback.key === callback.key) ||\n checkKeyStringCoercion(callback.key)),\n (escapedPrefix = cloneAndReplaceKey(\n callback,\n escapedPrefix +\n (null == callback.key ||\n (invokeCallback && invokeCallback.key === callback.key)\n ? \"\"\n : (\"\" + callback.key).replace(\n userProvidedKeyEscapeRegex,\n \"$&/\"\n ) + \"/\") +\n childKey\n )),\n \"\" !== nameSoFar &&\n null != invokeCallback &&\n isValidElement(invokeCallback) &&\n null == invokeCallback.key &&\n invokeCallback._store &&\n !invokeCallback._store.validated &&\n (escapedPrefix._store.validated = 2),\n (callback = escapedPrefix)),\n array.push(callback));\n return 1;\n }\n invokeCallback = 0;\n childKey = \"\" === nameSoFar ? \".\" : nameSoFar + \":\";\n if (isArrayImpl(children))\n for (var i = 0; i < children.length; i++)\n (nameSoFar = children[i]),\n (type = childKey + getElementKey(nameSoFar, i)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (((i = getIteratorFn(children)), \"function\" === typeof i))\n for (\n i === children.entries &&\n (didWarnAboutMaps ||\n console.warn(\n \"Using Maps as children is not supported. Use an array of keyed ReactElements instead.\"\n ),\n (didWarnAboutMaps = !0)),\n children = i.call(children),\n i = 0;\n !(nameSoFar = children.next()).done;\n\n )\n (nameSoFar = nameSoFar.value),\n (type = childKey + getElementKey(nameSoFar, i++)),\n (invokeCallback += mapIntoArray(\n nameSoFar,\n array,\n escapedPrefix,\n type,\n callback\n ));\n else if (\"object\" === type) {\n if (\"function\" === typeof children.then)\n return mapIntoArray(\n resolveThenable(children),\n array,\n escapedPrefix,\n nameSoFar,\n callback\n );\n array = String(children);\n throw Error(\n \"Objects are not valid as a React child (found: \" +\n (\"[object Object]\" === array\n ? \"object with keys {\" + Object.keys(children).join(\", \") + \"}\"\n : array) +\n \"). If you meant to render a collection of children, use an array instead.\"\n );\n }\n return invokeCallback;\n }\n function mapChildren(children, func, context) {\n if (null == children) return children;\n var result = [],\n count = 0;\n mapIntoArray(children, result, \"\", \"\", function (child) {\n return func.call(context, child, count++);\n });\n return result;\n }\n function lazyInitializer(payload) {\n if (-1 === payload._status) {\n var ioInfo = payload._ioInfo;\n null != ioInfo && (ioInfo.start = ioInfo.end = performance.now());\n ioInfo = payload._result;\n var thenable = ioInfo();\n thenable.then(\n function (moduleObject) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 1;\n payload._result = moduleObject;\n var _ioInfo = payload._ioInfo;\n null != _ioInfo && (_ioInfo.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"fulfilled\"),\n (thenable.value = moduleObject));\n }\n },\n function (error) {\n if (0 === payload._status || -1 === payload._status) {\n payload._status = 2;\n payload._result = error;\n var _ioInfo2 = payload._ioInfo;\n null != _ioInfo2 && (_ioInfo2.end = performance.now());\n void 0 === thenable.status &&\n ((thenable.status = \"rejected\"), (thenable.reason = error));\n }\n }\n );\n ioInfo = payload._ioInfo;\n if (null != ioInfo) {\n ioInfo.value = thenable;\n var displayName = thenable.displayName;\n \"string\" === typeof displayName && (ioInfo.name = displayName);\n }\n -1 === payload._status &&\n ((payload._status = 0), (payload._result = thenable));\n }\n if (1 === payload._status)\n return (\n (ioInfo = payload._result),\n void 0 === ioInfo &&\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\\n\\nDid you accidentally put curly braces around the import?\",\n ioInfo\n ),\n \"default\" in ioInfo ||\n console.error(\n \"lazy: Expected the result of a dynamic import() call. Instead received: %s\\n\\nYour code should look like: \\n const MyComponent = lazy(() => import('./MyComponent'))\",\n ioInfo\n ),\n ioInfo.default\n );\n throw payload._result;\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n function releaseAsyncTransition() {\n ReactSharedInternals.asyncTransitions--;\n }\n function enqueueTask(task) {\n if (null === enqueueTaskImpl)\n try {\n var requireString = (\"require\" + Math.random()).slice(0, 7);\n enqueueTaskImpl = (module && module[requireString]).call(\n module,\n \"timers\"\n ).setImmediate;\n } catch (_err) {\n enqueueTaskImpl = function (callback) {\n !1 === didWarnAboutMessageChannel &&\n ((didWarnAboutMessageChannel = !0),\n \"undefined\" === typeof MessageChannel &&\n console.error(\n \"This browser does not have a MessageChannel implementation, so enqueuing tasks via await act(async () => ...) will fail. Please file an issue at https://github.com/facebook/react/issues if you encounter this warning.\"\n ));\n var channel = new MessageChannel();\n channel.port1.onmessage = callback;\n channel.port2.postMessage(void 0);\n };\n }\n return enqueueTaskImpl(task);\n }\n function aggregateErrors(errors) {\n return 1 < errors.length && \"function\" === typeof AggregateError\n ? new AggregateError(errors)\n : errors[0];\n }\n function popActScope(prevActQueue, prevActScopeDepth) {\n prevActScopeDepth !== actScopeDepth - 1 &&\n console.error(\n \"You seem to have overlapping act() calls, this is not supported. Be sure to await previous act() calls before making a new one. \"\n );\n actScopeDepth = prevActScopeDepth;\n }\n function recursivelyFlushAsyncActWork(returnValue, resolve, reject) {\n var queue = ReactSharedInternals.actQueue;\n if (null !== queue)\n if (0 !== queue.length)\n try {\n flushActQueue(queue);\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(returnValue, resolve, reject);\n });\n return;\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n else ReactSharedInternals.actQueue = null;\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((queue = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(queue))\n : resolve(returnValue);\n }\n function flushActQueue(queue) {\n if (!isFlushing) {\n isFlushing = !0;\n var i = 0;\n try {\n for (; i < queue.length; i++) {\n var callback = queue[i];\n do {\n ReactSharedInternals.didUsePromise = !1;\n var continuation = callback(!1);\n if (null !== continuation) {\n if (ReactSharedInternals.didUsePromise) {\n queue[i] = callback;\n queue.splice(0, i);\n return;\n }\n callback = continuation;\n } else break;\n } while (1);\n }\n queue.length = 0;\n } catch (error) {\n queue.splice(0, i + 1), ReactSharedInternals.thrownErrors.push(error);\n } finally {\n isFlushing = !1;\n }\n }\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var REACT_ELEMENT_TYPE = Symbol.for(\"react.transitional.element\"),\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n REACT_FRAGMENT_TYPE = Symbol.for(\"react.fragment\"),\n REACT_STRICT_MODE_TYPE = Symbol.for(\"react.strict_mode\"),\n REACT_PROFILER_TYPE = Symbol.for(\"react.profiler\"),\n REACT_CONSUMER_TYPE = Symbol.for(\"react.consumer\"),\n REACT_CONTEXT_TYPE = Symbol.for(\"react.context\"),\n REACT_FORWARD_REF_TYPE = Symbol.for(\"react.forward_ref\"),\n REACT_SUSPENSE_TYPE = Symbol.for(\"react.suspense\"),\n REACT_SUSPENSE_LIST_TYPE = Symbol.for(\"react.suspense_list\"),\n REACT_MEMO_TYPE = Symbol.for(\"react.memo\"),\n REACT_LAZY_TYPE = Symbol.for(\"react.lazy\"),\n REACT_ACTIVITY_TYPE = Symbol.for(\"react.activity\"),\n MAYBE_ITERATOR_SYMBOL = Symbol.iterator,\n didWarnStateUpdateForUnmountedComponent = {},\n ReactNoopUpdateQueue = {\n isMounted: function () {\n return !1;\n },\n enqueueForceUpdate: function (publicInstance) {\n warnNoop(publicInstance, \"forceUpdate\");\n },\n enqueueReplaceState: function (publicInstance) {\n warnNoop(publicInstance, \"replaceState\");\n },\n enqueueSetState: function (publicInstance) {\n warnNoop(publicInstance, \"setState\");\n }\n },\n assign = Object.assign,\n emptyObject = {};\n Object.freeze(emptyObject);\n Component.prototype.isReactComponent = {};\n Component.prototype.setState = function (partialState, callback) {\n if (\n \"object\" !== typeof partialState &&\n \"function\" !== typeof partialState &&\n null != partialState\n )\n throw Error(\n \"takes an object of state variables to update or a function which returns an object of state variables.\"\n );\n this.updater.enqueueSetState(this, partialState, callback, \"setState\");\n };\n Component.prototype.forceUpdate = function (callback) {\n this.updater.enqueueForceUpdate(this, callback, \"forceUpdate\");\n };\n var deprecatedAPIs = {\n isMounted: [\n \"isMounted\",\n \"Instead, make sure to clean up subscriptions and pending requests in componentWillUnmount to prevent memory leaks.\"\n ],\n replaceState: [\n \"replaceState\",\n \"Refactor your code to use setState instead (see https://github.com/facebook/react/issues/3236).\"\n ]\n };\n for (fnName in deprecatedAPIs)\n deprecatedAPIs.hasOwnProperty(fnName) &&\n defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);\n ComponentDummy.prototype = Component.prototype;\n deprecatedAPIs = PureComponent.prototype = new ComponentDummy();\n deprecatedAPIs.constructor = PureComponent;\n assign(deprecatedAPIs, Component.prototype);\n deprecatedAPIs.isPureReactComponent = !0;\n var isArrayImpl = Array.isArray,\n REACT_CLIENT_REFERENCE = Symbol.for(\"react.client.reference\"),\n ReactSharedInternals = {\n H: null,\n A: null,\n T: null,\n S: null,\n actQueue: null,\n asyncTransitions: 0,\n isBatchingLegacy: !1,\n didScheduleLegacyUpdate: !1,\n didUsePromise: !1,\n thrownErrors: [],\n getCurrentStack: null,\n recentlyCreatedOwnerStacks: 0\n },\n hasOwnProperty = Object.prototype.hasOwnProperty,\n createTask = console.createTask\n ? console.createTask\n : function () {\n return null;\n };\n deprecatedAPIs = {\n react_stack_bottom_frame: function (callStackForError) {\n return callStackForError();\n }\n };\n var specialPropKeyWarningShown, didWarnAboutOldJSXRuntime;\n var didWarnAboutElementRef = {};\n var unknownOwnerDebugStack = deprecatedAPIs.react_stack_bottom_frame.bind(\n deprecatedAPIs,\n UnknownOwner\n )();\n var unknownOwnerDebugTask = createTask(getTaskName(UnknownOwner));\n var didWarnAboutMaps = !1,\n userProvidedKeyEscapeRegex = /\\/+/g,\n reportGlobalError =\n \"function\" === typeof reportError\n ? reportError\n : function (error) {\n if (\n \"object\" === typeof window &&\n \"function\" === typeof window.ErrorEvent\n ) {\n var event = new window.ErrorEvent(\"error\", {\n bubbles: !0,\n cancelable: !0,\n message:\n \"object\" === typeof error &&\n null !== error &&\n \"string\" === typeof error.message\n ? String(error.message)\n : String(error),\n error: error\n });\n if (!window.dispatchEvent(event)) return;\n } else if (\n \"object\" === typeof process &&\n \"function\" === typeof process.emit\n ) {\n process.emit(\"uncaughtException\", error);\n return;\n }\n console.error(error);\n },\n didWarnAboutMessageChannel = !1,\n enqueueTaskImpl = null,\n actScopeDepth = 0,\n didWarnNoAwaitAct = !1,\n isFlushing = !1,\n queueSeveralMicrotasks =\n \"function\" === typeof queueMicrotask\n ? function (callback) {\n queueMicrotask(function () {\n return queueMicrotask(callback);\n });\n }\n : enqueueTask;\n deprecatedAPIs = Object.freeze({\n __proto__: null,\n c: function (size) {\n return resolveDispatcher().useMemoCache(size);\n }\n });\n var fnName = {\n map: mapChildren,\n forEach: function (children, forEachFunc, forEachContext) {\n mapChildren(\n children,\n function () {\n forEachFunc.apply(this, arguments);\n },\n forEachContext\n );\n },\n count: function (children) {\n var n = 0;\n mapChildren(children, function () {\n n++;\n });\n return n;\n },\n toArray: function (children) {\n return (\n mapChildren(children, function (child) {\n return child;\n }) || []\n );\n },\n only: function (children) {\n if (!isValidElement(children))\n throw Error(\n \"React.Children.only expected to receive a single React element child.\"\n );\n return children;\n }\n };\n exports.Activity = REACT_ACTIVITY_TYPE;\n exports.Children = fnName;\n exports.Component = Component;\n exports.Fragment = REACT_FRAGMENT_TYPE;\n exports.Profiler = REACT_PROFILER_TYPE;\n exports.PureComponent = PureComponent;\n exports.StrictMode = REACT_STRICT_MODE_TYPE;\n exports.Suspense = REACT_SUSPENSE_TYPE;\n exports.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n ReactSharedInternals;\n exports.__COMPILER_RUNTIME = deprecatedAPIs;\n exports.act = function (callback) {\n var prevActQueue = ReactSharedInternals.actQueue,\n prevActScopeDepth = actScopeDepth;\n actScopeDepth++;\n var queue = (ReactSharedInternals.actQueue =\n null !== prevActQueue ? prevActQueue : []),\n didAwaitActCall = !1;\n try {\n var result = callback();\n } catch (error) {\n ReactSharedInternals.thrownErrors.push(error);\n }\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n (popActScope(prevActQueue, prevActScopeDepth),\n (callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n if (\n null !== result &&\n \"object\" === typeof result &&\n \"function\" === typeof result.then\n ) {\n var thenable = result;\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"You called act(async () => ...) without await. This could lead to unexpected testing behaviour, interleaving multiple act calls and mixing their scopes. You should - await act(async () => ...);\"\n ));\n });\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n thenable.then(\n function (returnValue) {\n popActScope(prevActQueue, prevActScopeDepth);\n if (0 === prevActScopeDepth) {\n try {\n flushActQueue(queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue,\n resolve,\n reject\n );\n });\n } catch (error$0) {\n ReactSharedInternals.thrownErrors.push(error$0);\n }\n if (0 < ReactSharedInternals.thrownErrors.length) {\n var _thrownError = aggregateErrors(\n ReactSharedInternals.thrownErrors\n );\n ReactSharedInternals.thrownErrors.length = 0;\n reject(_thrownError);\n }\n } else resolve(returnValue);\n },\n function (error) {\n popActScope(prevActQueue, prevActScopeDepth);\n 0 < ReactSharedInternals.thrownErrors.length\n ? ((error = aggregateErrors(\n ReactSharedInternals.thrownErrors\n )),\n (ReactSharedInternals.thrownErrors.length = 0),\n reject(error))\n : reject(error);\n }\n );\n }\n };\n }\n var returnValue$jscomp$0 = result;\n popActScope(prevActQueue, prevActScopeDepth);\n 0 === prevActScopeDepth &&\n (flushActQueue(queue),\n 0 !== queue.length &&\n queueSeveralMicrotasks(function () {\n didAwaitActCall ||\n didWarnNoAwaitAct ||\n ((didWarnNoAwaitAct = !0),\n console.error(\n \"A component suspended inside an `act` scope, but the `act` call was not awaited. When testing React components that depend on asynchronous data, you must await the result:\\n\\nawait act(() => ...)\"\n ));\n }),\n (ReactSharedInternals.actQueue = null));\n if (0 < ReactSharedInternals.thrownErrors.length)\n throw (\n ((callback = aggregateErrors(ReactSharedInternals.thrownErrors)),\n (ReactSharedInternals.thrownErrors.length = 0),\n callback)\n );\n return {\n then: function (resolve, reject) {\n didAwaitActCall = !0;\n 0 === prevActScopeDepth\n ? ((ReactSharedInternals.actQueue = queue),\n enqueueTask(function () {\n return recursivelyFlushAsyncActWork(\n returnValue$jscomp$0,\n resolve,\n reject\n );\n }))\n : resolve(returnValue$jscomp$0);\n }\n };\n };\n exports.cache = function (fn) {\n return function () {\n return fn.apply(null, arguments);\n };\n };\n exports.cacheSignal = function () {\n return null;\n };\n exports.captureOwnerStack = function () {\n var getCurrentStack = ReactSharedInternals.getCurrentStack;\n return null === getCurrentStack ? null : getCurrentStack();\n };\n exports.cloneElement = function (element, config, children) {\n if (null === element || void 0 === element)\n throw Error(\n \"The argument must be a React element, but you passed \" +\n element +\n \".\"\n );\n var props = assign({}, element.props),\n key = element.key,\n owner = element._owner;\n if (null != config) {\n var JSCompiler_inline_result;\n a: {\n if (\n hasOwnProperty.call(config, \"ref\") &&\n (JSCompiler_inline_result = Object.getOwnPropertyDescriptor(\n config,\n \"ref\"\n ).get) &&\n JSCompiler_inline_result.isReactWarning\n ) {\n JSCompiler_inline_result = !1;\n break a;\n }\n JSCompiler_inline_result = void 0 !== config.ref;\n }\n JSCompiler_inline_result && (owner = getOwner());\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key));\n for (propName in config)\n !hasOwnProperty.call(config, propName) ||\n \"key\" === propName ||\n \"__self\" === propName ||\n \"__source\" === propName ||\n (\"ref\" === propName && void 0 === config.ref) ||\n (props[propName] = config[propName]);\n }\n var propName = arguments.length - 2;\n if (1 === propName) props.children = children;\n else if (1 < propName) {\n JSCompiler_inline_result = Array(propName);\n for (var i = 0; i < propName; i++)\n JSCompiler_inline_result[i] = arguments[i + 2];\n props.children = JSCompiler_inline_result;\n }\n props = ReactElement(\n element.type,\n key,\n props,\n owner,\n element._debugStack,\n element._debugTask\n );\n for (key = 2; key < arguments.length; key++)\n validateChildKeys(arguments[key]);\n return props;\n };\n exports.createContext = function (defaultValue) {\n defaultValue = {\n $$typeof: REACT_CONTEXT_TYPE,\n _currentValue: defaultValue,\n _currentValue2: defaultValue,\n _threadCount: 0,\n Provider: null,\n Consumer: null\n };\n defaultValue.Provider = defaultValue;\n defaultValue.Consumer = {\n $$typeof: REACT_CONSUMER_TYPE,\n _context: defaultValue\n };\n defaultValue._currentRenderer = null;\n defaultValue._currentRenderer2 = null;\n return defaultValue;\n };\n exports.createElement = function (type, config, children) {\n for (var i = 2; i < arguments.length; i++)\n validateChildKeys(arguments[i]);\n i = {};\n var key = null;\n if (null != config)\n for (propName in (didWarnAboutOldJSXRuntime ||\n !(\"__self\" in config) ||\n \"key\" in config ||\n ((didWarnAboutOldJSXRuntime = !0),\n console.warn(\n \"Your app (or one of its dependencies) is using an outdated JSX transform. Update to the modern JSX transform for faster performance: https://react.dev/link/new-jsx-transform\"\n )),\n hasValidKey(config) &&\n (checkKeyStringCoercion(config.key), (key = \"\" + config.key)),\n config))\n hasOwnProperty.call(config, propName) &&\n \"key\" !== propName &&\n \"__self\" !== propName &&\n \"__source\" !== propName &&\n (i[propName] = config[propName]);\n var childrenLength = arguments.length - 2;\n if (1 === childrenLength) i.children = children;\n else if (1 < childrenLength) {\n for (\n var childArray = Array(childrenLength), _i = 0;\n _i < childrenLength;\n _i++\n )\n childArray[_i] = arguments[_i + 2];\n Object.freeze && Object.freeze(childArray);\n i.children = childArray;\n }\n if (type && type.defaultProps)\n for (propName in ((childrenLength = type.defaultProps), childrenLength))\n void 0 === i[propName] && (i[propName] = childrenLength[propName]);\n key &&\n defineKeyPropWarningGetter(\n i,\n \"function\" === typeof type\n ? type.displayName || type.name || \"Unknown\"\n : type\n );\n var propName = 1e4 > ReactSharedInternals.recentlyCreatedOwnerStacks++;\n return ReactElement(\n type,\n key,\n i,\n getOwner(),\n propName ? Error(\"react-stack-top-frame\") : unknownOwnerDebugStack,\n propName ? createTask(getTaskName(type)) : unknownOwnerDebugTask\n );\n };\n exports.createRef = function () {\n var refObject = { current: null };\n Object.seal(refObject);\n return refObject;\n };\n exports.forwardRef = function (render) {\n null != render && render.$$typeof === REACT_MEMO_TYPE\n ? console.error(\n \"forwardRef requires a render function but received a `memo` component. Instead of forwardRef(memo(...)), use memo(forwardRef(...)).\"\n )\n : \"function\" !== typeof render\n ? console.error(\n \"forwardRef requires a render function but was given %s.\",\n null === render ? \"null\" : typeof render\n )\n : 0 !== render.length &&\n 2 !== render.length &&\n console.error(\n \"forwardRef render functions accept exactly two parameters: props and ref. %s\",\n 1 === render.length\n ? \"Did you forget to use the ref parameter?\"\n : \"Any additional parameter will be undefined.\"\n );\n null != render &&\n null != render.defaultProps &&\n console.error(\n \"forwardRef render functions do not support defaultProps. Did you accidentally pass a React component?\"\n );\n var elementType = { $$typeof: REACT_FORWARD_REF_TYPE, render: render },\n ownName;\n Object.defineProperty(elementType, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n render.name ||\n render.displayName ||\n (Object.defineProperty(render, \"name\", { value: name }),\n (render.displayName = name));\n }\n });\n return elementType;\n };\n exports.isValidElement = isValidElement;\n exports.lazy = function (ctor) {\n ctor = { _status: -1, _result: ctor };\n var lazyType = {\n $$typeof: REACT_LAZY_TYPE,\n _payload: ctor,\n _init: lazyInitializer\n },\n ioInfo = {\n name: \"lazy\",\n start: -1,\n end: -1,\n value: null,\n owner: null,\n debugStack: Error(\"react-stack-top-frame\"),\n debugTask: console.createTask ? console.createTask(\"lazy()\") : null\n };\n ctor._ioInfo = ioInfo;\n lazyType._debugInfo = [{ awaited: ioInfo }];\n return lazyType;\n };\n exports.memo = function (type, compare) {\n null == type &&\n console.error(\n \"memo: The first argument must be a component. Instead received: %s\",\n null === type ? \"null\" : typeof type\n );\n compare = {\n $$typeof: REACT_MEMO_TYPE,\n type: type,\n compare: void 0 === compare ? null : compare\n };\n var ownName;\n Object.defineProperty(compare, \"displayName\", {\n enumerable: !1,\n configurable: !0,\n get: function () {\n return ownName;\n },\n set: function (name) {\n ownName = name;\n type.name ||\n type.displayName ||\n (Object.defineProperty(type, \"name\", { value: name }),\n (type.displayName = name));\n }\n });\n return compare;\n };\n exports.startTransition = function (scope) {\n var prevTransition = ReactSharedInternals.T,\n currentTransition = {};\n currentTransition._updatedFibers = new Set();\n ReactSharedInternals.T = currentTransition;\n try {\n var returnValue = scope(),\n onStartTransitionFinish = ReactSharedInternals.S;\n null !== onStartTransitionFinish &&\n onStartTransitionFinish(currentTransition, returnValue);\n \"object\" === typeof returnValue &&\n null !== returnValue &&\n \"function\" === typeof returnValue.then &&\n (ReactSharedInternals.asyncTransitions++,\n returnValue.then(releaseAsyncTransition, releaseAsyncTransition),\n returnValue.then(noop, reportGlobalError));\n } catch (error) {\n reportGlobalError(error);\n } finally {\n null === prevTransition &&\n currentTransition._updatedFibers &&\n ((scope = currentTransition._updatedFibers.size),\n currentTransition._updatedFibers.clear(),\n 10 < scope &&\n console.warn(\n \"Detected a large number of updates inside startTransition. If this is due to a subscription please re-write it to use React provided hooks. Otherwise concurrent mode guarantees are off the table.\"\n )),\n null !== prevTransition &&\n null !== currentTransition.types &&\n (null !== prevTransition.types &&\n prevTransition.types !== currentTransition.types &&\n console.error(\n \"We expected inner Transitions to have transferred the outer types set and that you cannot add to the outer Transition while inside the inner.This is a bug in React.\"\n ),\n (prevTransition.types = currentTransition.types)),\n (ReactSharedInternals.T = prevTransition);\n }\n };\n exports.unstable_useCacheRefresh = function () {\n return resolveDispatcher().useCacheRefresh();\n };\n exports.use = function (usable) {\n return resolveDispatcher().use(usable);\n };\n exports.useActionState = function (action, initialState, permalink) {\n return resolveDispatcher().useActionState(\n action,\n initialState,\n permalink\n );\n };\n exports.useCallback = function (callback, deps) {\n return resolveDispatcher().useCallback(callback, deps);\n };\n exports.useContext = function (Context) {\n var dispatcher = resolveDispatcher();\n Context.$$typeof === REACT_CONSUMER_TYPE &&\n console.error(\n \"Calling useContext(Context.Consumer) is not supported and will cause bugs. Did you mean to call useContext(Context) instead?\"\n );\n return dispatcher.useContext(Context);\n };\n exports.useDebugValue = function (value, formatterFn) {\n return resolveDispatcher().useDebugValue(value, formatterFn);\n };\n exports.useDeferredValue = function (value, initialValue) {\n return resolveDispatcher().useDeferredValue(value, initialValue);\n };\n exports.useEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useEffect(create, deps);\n };\n exports.useEffectEvent = function (callback) {\n return resolveDispatcher().useEffectEvent(callback);\n };\n exports.useId = function () {\n return resolveDispatcher().useId();\n };\n exports.useImperativeHandle = function (ref, create, deps) {\n return resolveDispatcher().useImperativeHandle(ref, create, deps);\n };\n exports.useInsertionEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useInsertionEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useInsertionEffect(create, deps);\n };\n exports.useLayoutEffect = function (create, deps) {\n null == create &&\n console.warn(\n \"React Hook useLayoutEffect requires an effect callback. Did you forget to pass a callback to the hook?\"\n );\n return resolveDispatcher().useLayoutEffect(create, deps);\n };\n exports.useMemo = function (create, deps) {\n return resolveDispatcher().useMemo(create, deps);\n };\n exports.useOptimistic = function (passthrough, reducer) {\n return resolveDispatcher().useOptimistic(passthrough, reducer);\n };\n exports.useReducer = function (reducer, initialArg, init) {\n return resolveDispatcher().useReducer(reducer, initialArg, init);\n };\n exports.useRef = function (initialValue) {\n return resolveDispatcher().useRef(initialValue);\n };\n exports.useState = function (initialState) {\n return resolveDispatcher().useState(initialState);\n };\n exports.useSyncExternalStore = function (\n subscribe,\n getSnapshot,\n getServerSnapshot\n ) {\n return resolveDispatcher().useSyncExternalStore(\n subscribe,\n getSnapshot,\n getServerSnapshot\n );\n };\n exports.useTransition = function () {\n return resolveDispatcher().useTransition();\n };\n exports.version = \"19.2.8\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n", "'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n", "/**\n * @license React\n * react-dom.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function noop() {}\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function createPortal$1(children, containerInfo, implementation) {\n var key =\n 3 < arguments.length && void 0 !== arguments[3] ? arguments[3] : null;\n try {\n testStringCoercion(key);\n var JSCompiler_inline_result = !1;\n } catch (e) {\n JSCompiler_inline_result = !0;\n }\n JSCompiler_inline_result &&\n (console.error(\n \"The provided key is an unsupported type %s. This value must be coerced to a string before using it here.\",\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n key[Symbol.toStringTag]) ||\n key.constructor.name ||\n \"Object\"\n ),\n testStringCoercion(key));\n return {\n $$typeof: REACT_PORTAL_TYPE,\n key: null == key ? null : \"\" + key,\n children: children,\n containerInfo: containerInfo,\n implementation: implementation\n };\n }\n function getCrossOriginStringAs(as, input) {\n if (\"font\" === as) return \"\";\n if (\"string\" === typeof input)\n return \"use-credentials\" === input ? input : \"\";\n }\n function getValueDescriptorExpectingObjectForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function getValueDescriptorExpectingEnumForWarning(thing) {\n return null === thing\n ? \"`null`\"\n : void 0 === thing\n ? \"`undefined`\"\n : \"\" === thing\n ? \"an empty string\"\n : \"string\" === typeof thing\n ? JSON.stringify(thing)\n : \"number\" === typeof thing\n ? \"`\" + thing + \"`\"\n : 'something with type \"' + typeof thing + '\"';\n }\n function resolveDispatcher() {\n var dispatcher = ReactSharedInternals.H;\n null === dispatcher &&\n console.error(\n \"Invalid hook call. Hooks can only be called inside of the body of a function component. This could happen for one of the following reasons:\\n1. You might have mismatching versions of React and the renderer (such as React DOM)\\n2. You might be breaking the Rules of Hooks\\n3. You might have more than one copy of React in the same app\\nSee https://react.dev/link/invalid-hook-call for tips about how to debug and fix this problem.\"\n );\n return dispatcher;\n }\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStart(Error());\n var React = require(\"react\"),\n Internals = {\n d: {\n f: noop,\n r: function () {\n throw Error(\n \"Invalid form element. requestFormReset must be passed a form that was rendered by React.\"\n );\n },\n D: noop,\n C: noop,\n L: noop,\n m: noop,\n X: noop,\n S: noop,\n M: noop\n },\n p: 0,\n findDOMNode: null\n },\n REACT_PORTAL_TYPE = Symbol.for(\"react.portal\"),\n ReactSharedInternals =\n React.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE;\n (\"function\" === typeof Map &&\n null != Map.prototype &&\n \"function\" === typeof Map.prototype.forEach &&\n \"function\" === typeof Set &&\n null != Set.prototype &&\n \"function\" === typeof Set.prototype.clear &&\n \"function\" === typeof Set.prototype.forEach) ||\n console.error(\n \"React depends on Map and Set built-in types. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills\"\n );\n exports.__DOM_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE =\n Internals;\n exports.createPortal = function (children, container) {\n var key =\n 2 < arguments.length && void 0 !== arguments[2] ? arguments[2] : null;\n if (\n !container ||\n (1 !== container.nodeType &&\n 9 !== container.nodeType &&\n 11 !== container.nodeType)\n )\n throw Error(\"Target container is not a DOM element.\");\n return createPortal$1(children, container, null, key);\n };\n exports.flushSync = function (fn) {\n var previousTransition = ReactSharedInternals.T,\n previousUpdatePriority = Internals.p;\n try {\n if (((ReactSharedInternals.T = null), (Internals.p = 2), fn))\n return fn();\n } finally {\n (ReactSharedInternals.T = previousTransition),\n (Internals.p = previousUpdatePriority),\n Internals.d.f() &&\n console.error(\n \"flushSync was called from inside a lifecycle method. React cannot flush when React is already rendering. Consider moving this call to a scheduler task or micro task.\"\n );\n }\n };\n exports.preconnect = function (href, options) {\n \"string\" === typeof href && href\n ? null != options && \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preconnect(): Expected the `options` argument (second) to be an object but encountered %s instead. The only supported option at this time is `crossOrigin` which accepts a string.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : null != options &&\n \"string\" !== typeof options.crossOrigin &&\n console.error(\n \"ReactDOM.preconnect(): Expected the `crossOrigin` option (second argument) to be a string but encountered %s instead. Try removing this option or passing a string value instead.\",\n getValueDescriptorExpectingObjectForWarning(options.crossOrigin)\n )\n : console.error(\n \"ReactDOM.preconnect(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n \"string\" === typeof href &&\n (options\n ? ((options = options.crossOrigin),\n (options =\n \"string\" === typeof options\n ? \"use-credentials\" === options\n ? options\n : \"\"\n : void 0))\n : (options = null),\n Internals.d.C(href, options));\n };\n exports.prefetchDNS = function (href) {\n if (\"string\" !== typeof href || !href)\n console.error(\n \"ReactDOM.prefetchDNS(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n else if (1 < arguments.length) {\n var options = arguments[1];\n \"object\" === typeof options && options.hasOwnProperty(\"crossOrigin\")\n ? console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. It looks like the you are attempting to set a crossOrigin property for this DNS lookup hint. Browsers do not perform DNS queries using CORS and setting this attribute on the resource hint has no effect. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : console.error(\n \"ReactDOM.prefetchDNS(): Expected only one argument, `href`, but encountered %s as a second argument instead. This argument is reserved for future options and is currently disallowed. Try calling ReactDOM.prefetchDNS() with just a single string argument, `href`.\",\n getValueDescriptorExpectingEnumForWarning(options)\n );\n }\n \"string\" === typeof href && Internals.d.D(href);\n };\n exports.preinit = function (href, options) {\n \"string\" === typeof href && href\n ? null == options || \"object\" !== typeof options\n ? console.error(\n \"ReactDOM.preinit(): Expected the `options` argument (second) to be an object with an `as` property describing the type of resource to be preinitialized but encountered %s instead.\",\n getValueDescriptorExpectingEnumForWarning(options)\n )\n : \"style\" !== options.as &&\n \"script\" !== options.as &&\n console.error(\n 'ReactDOM.preinit(): Expected the `as` property in the `options` argument (second) to contain a valid value describing the type of resource to be preinitialized but encountered %s instead. Valid values for `as` are \"style\" and \"script\".',\n getValueDescriptorExpectingEnumForWarning(options.as)\n )\n : console.error(\n \"ReactDOM.preinit(): Expected the `href` argument (first) to be a non-empty string but encountered %s instead.\",\n getValueDescriptorExpectingObjectForWarning(href)\n );\n if (\n \"string\" === typeof href &&\n options &&\n \"string\" === typeof options.as\n ) {\n var as = options.as,\n crossOrigin = getCrossOriginStringAs(as, options.crossOrigin),\n integrity =\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n fetchPriority =\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0;\n \"style\" === as\n ? Internals.d.S(\n href,\n \"string\" === typeof options.precedence\n ? options.precedence\n : void 0,\n {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority\n }\n )\n : \"script\" === as &&\n Internals.d.X(href, {\n crossOrigin: crossOrigin,\n integrity: integrity,\n fetchPriority: fetchPriority,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n }\n };\n exports.preinitModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"script\" !== options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingEnumForWarning(options.as) +\n \".\");\n if (encountered)\n console.error(\n \"ReactDOM.preinitModule(): Expected up to two arguments, a non-empty `href` string and, optionally, an `options` object with a valid `as` property.%s\",\n encountered\n );\n else\n switch (\n ((encountered =\n options && \"string\" === typeof options.as ? options.as : \"script\"),\n encountered)\n ) {\n case \"script\":\n break;\n default:\n (encountered =\n getValueDescriptorExpectingEnumForWarning(encountered)),\n console.error(\n 'ReactDOM.preinitModule(): Currently the only supported \"as\" type for this function is \"script\" but received \"%s\" instead. This warning was generated for `href` \"%s\". In the future other module types will be supported, aligning with the import-attributes proposal. Learn more here: (https://github.com/tc39/proposal-import-attributes)',\n encountered,\n href\n );\n }\n if (\"string\" === typeof href)\n if (\"object\" === typeof options && null !== options) {\n if (null == options.as || \"script\" === options.as)\n (encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.M(href, {\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0,\n nonce:\n \"string\" === typeof options.nonce ? options.nonce : void 0\n });\n } else null == options && Internals.d.M(href);\n };\n exports.preload = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n null == options || \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : (\"string\" === typeof options.as && options.as) ||\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preload(): Expected two arguments, a non-empty `href` string and an `options` object with an `as` property valid for a `` tag.%s',\n encountered\n );\n if (\n \"string\" === typeof href &&\n \"object\" === typeof options &&\n null !== options &&\n \"string\" === typeof options.as\n ) {\n encountered = options.as;\n var crossOrigin = getCrossOriginStringAs(\n encountered,\n options.crossOrigin\n );\n Internals.d.L(href, encountered, {\n crossOrigin: crossOrigin,\n integrity:\n \"string\" === typeof options.integrity ? options.integrity : void 0,\n nonce: \"string\" === typeof options.nonce ? options.nonce : void 0,\n type: \"string\" === typeof options.type ? options.type : void 0,\n fetchPriority:\n \"string\" === typeof options.fetchPriority\n ? options.fetchPriority\n : void 0,\n referrerPolicy:\n \"string\" === typeof options.referrerPolicy\n ? options.referrerPolicy\n : void 0,\n imageSrcSet:\n \"string\" === typeof options.imageSrcSet\n ? options.imageSrcSet\n : void 0,\n imageSizes:\n \"string\" === typeof options.imageSizes\n ? options.imageSizes\n : void 0,\n media: \"string\" === typeof options.media ? options.media : void 0\n });\n }\n };\n exports.preloadModule = function (href, options) {\n var encountered = \"\";\n (\"string\" === typeof href && href) ||\n (encountered +=\n \" The `href` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(href) +\n \".\");\n void 0 !== options && \"object\" !== typeof options\n ? (encountered +=\n \" The `options` argument encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options) +\n \".\")\n : options &&\n \"as\" in options &&\n \"string\" !== typeof options.as &&\n (encountered +=\n \" The `as` option encountered was \" +\n getValueDescriptorExpectingObjectForWarning(options.as) +\n \".\");\n encountered &&\n console.error(\n 'ReactDOM.preloadModule(): Expected two arguments, a non-empty `href` string and, optionally, an `options` object with an `as` property valid for a `` tag.%s',\n encountered\n );\n \"string\" === typeof href &&\n (options\n ? ((encountered = getCrossOriginStringAs(\n options.as,\n options.crossOrigin\n )),\n Internals.d.m(href, {\n as:\n \"string\" === typeof options.as && \"script\" !== options.as\n ? options.as\n : void 0,\n crossOrigin: encountered,\n integrity:\n \"string\" === typeof options.integrity\n ? options.integrity\n : void 0\n }))\n : Internals.d.m(href));\n };\n exports.requestFormReset = function (form) {\n Internals.d.r(form);\n };\n exports.unstable_batchedUpdates = function (fn, a) {\n return fn(a);\n };\n exports.useFormState = function (action, initialState, permalink) {\n return resolveDispatcher().useFormState(action, initialState, permalink);\n };\n exports.useFormStatus = function () {\n return resolveDispatcher().useHostTransitionStatus();\n };\n exports.version = \"19.2.8\";\n \"undefined\" !== typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ &&\n \"function\" ===\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop &&\n __REACT_DEVTOOLS_GLOBAL_HOOK__.registerInternalModuleStop(Error());\n })();\n", "'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n", "/**\n * @license React\n * react-dom-server-legacy.browser.development.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n/*\n\n\n JS Implementation of MurmurHash3 (r136) (as of May 20, 2011)\n\n Copyright (c) 2011 Gary Court\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n SOFTWARE.\n*/\n\"use strict\";\n\"production\" !== process.env.NODE_ENV &&\n (function () {\n function styleReplacer(match, prefix, s, suffix) {\n return \"\" + prefix + (\"s\" === s ? \"\\\\73 \" : \"\\\\53 \") + suffix;\n }\n function scriptReplacer(match, prefix, s, suffix) {\n return \"\" + prefix + (\"s\" === s ? \"\\\\u0073\" : \"\\\\u0053\") + suffix;\n }\n function getIteratorFn(maybeIterable) {\n if (null === maybeIterable || \"object\" !== typeof maybeIterable)\n return null;\n maybeIterable =\n (MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL]) ||\n maybeIterable[\"@@iterator\"];\n return \"function\" === typeof maybeIterable ? maybeIterable : null;\n }\n function objectName(object) {\n object = Object.prototype.toString.call(object);\n return object.slice(8, object.length - 1);\n }\n function describeKeyForErrorMessage(key) {\n var encodedKey = JSON.stringify(key);\n return '\"' + key + '\"' === encodedKey ? key : encodedKey;\n }\n function describeValueForErrorMessage(value) {\n switch (typeof value) {\n case \"string\":\n return JSON.stringify(\n 10 >= value.length ? value : value.slice(0, 10) + \"...\"\n );\n case \"object\":\n if (isArrayImpl(value)) return \"[...]\";\n if (null !== value && value.$$typeof === CLIENT_REFERENCE_TAG)\n return \"client\";\n value = objectName(value);\n return \"Object\" === value ? \"{...}\" : value;\n case \"function\":\n return value.$$typeof === CLIENT_REFERENCE_TAG\n ? \"client\"\n : (value = value.displayName || value.name)\n ? \"function \" + value\n : \"function\";\n default:\n return String(value);\n }\n }\n function describeElementType(type) {\n if (\"string\" === typeof type) return type;\n switch (type) {\n case REACT_SUSPENSE_TYPE:\n return \"Suspense\";\n case REACT_SUSPENSE_LIST_TYPE:\n return \"SuspenseList\";\n }\n if (\"object\" === typeof type)\n switch (type.$$typeof) {\n case REACT_FORWARD_REF_TYPE:\n return describeElementType(type.render);\n case REACT_MEMO_TYPE:\n return describeElementType(type.type);\n case REACT_LAZY_TYPE:\n var payload = type._payload;\n type = type._init;\n try {\n return describeElementType(type(payload));\n } catch (x) {}\n }\n return \"\";\n }\n function describeObjectForErrorMessage(objectOrArray, expandedName) {\n var objKind = objectName(objectOrArray);\n if (\"Object\" !== objKind && \"Array\" !== objKind) return objKind;\n var start = -1,\n length = 0;\n if (isArrayImpl(objectOrArray))\n if (jsxChildrenParents.has(objectOrArray)) {\n var type = jsxChildrenParents.get(objectOrArray);\n objKind = \"<\" + describeElementType(type) + \">\";\n for (var i = 0; i < objectOrArray.length; i++) {\n var value = objectOrArray[i];\n value =\n \"string\" === typeof value\n ? value\n : \"object\" === typeof value && null !== value\n ? \"{\" + describeObjectForErrorMessage(value) + \"}\"\n : \"{\" + describeValueForErrorMessage(value) + \"}\";\n \"\" + i === expandedName\n ? ((start = objKind.length),\n (length = value.length),\n (objKind += value))\n : (objKind =\n 15 > value.length && 40 > objKind.length + value.length\n ? objKind + value\n : objKind + \"{...}\");\n }\n objKind += \"\";\n } else {\n objKind = \"[\";\n for (type = 0; type < objectOrArray.length; type++)\n 0 < type && (objKind += \", \"),\n (i = objectOrArray[type]),\n (i =\n \"object\" === typeof i && null !== i\n ? describeObjectForErrorMessage(i)\n : describeValueForErrorMessage(i)),\n \"\" + type === expandedName\n ? ((start = objKind.length),\n (length = i.length),\n (objKind += i))\n : (objKind =\n 10 > i.length && 40 > objKind.length + i.length\n ? objKind + i\n : objKind + \"...\");\n objKind += \"]\";\n }\n else if (objectOrArray.$$typeof === REACT_ELEMENT_TYPE)\n objKind = \"<\" + describeElementType(objectOrArray.type) + \"/>\";\n else {\n if (objectOrArray.$$typeof === CLIENT_REFERENCE_TAG) return \"client\";\n if (jsxPropsParents.has(objectOrArray)) {\n objKind = jsxPropsParents.get(objectOrArray);\n objKind = \"<\" + (describeElementType(objKind) || \"...\");\n type = Object.keys(objectOrArray);\n for (i = 0; i < type.length; i++) {\n objKind += \" \";\n value = type[i];\n objKind += describeKeyForErrorMessage(value) + \"=\";\n var _value2 = objectOrArray[value];\n var _substr2 =\n value === expandedName &&\n \"object\" === typeof _value2 &&\n null !== _value2\n ? describeObjectForErrorMessage(_value2)\n : describeValueForErrorMessage(_value2);\n \"string\" !== typeof _value2 && (_substr2 = \"{\" + _substr2 + \"}\");\n value === expandedName\n ? ((start = objKind.length),\n (length = _substr2.length),\n (objKind += _substr2))\n : (objKind =\n 10 > _substr2.length && 40 > objKind.length + _substr2.length\n ? objKind + _substr2\n : objKind + \"...\");\n }\n objKind += \">\";\n } else {\n objKind = \"{\";\n type = Object.keys(objectOrArray);\n for (i = 0; i < type.length; i++)\n 0 < i && (objKind += \", \"),\n (value = type[i]),\n (objKind += describeKeyForErrorMessage(value) + \": \"),\n (_value2 = objectOrArray[value]),\n (_value2 =\n \"object\" === typeof _value2 && null !== _value2\n ? describeObjectForErrorMessage(_value2)\n : describeValueForErrorMessage(_value2)),\n value === expandedName\n ? ((start = objKind.length),\n (length = _value2.length),\n (objKind += _value2))\n : (objKind =\n 10 > _value2.length && 40 > objKind.length + _value2.length\n ? objKind + _value2\n : objKind + \"...\");\n objKind += \"}\";\n }\n }\n return void 0 === expandedName\n ? objKind\n : -1 < start && 0 < length\n ? ((objectOrArray = \" \".repeat(start) + \"^\".repeat(length)),\n \"\\n \" + objKind + \"\\n \" + objectOrArray)\n : \"\\n \" + objKind;\n }\n function murmurhash3_32_gc(key, seed) {\n var remainder = key.length & 3;\n var bytes = key.length - remainder;\n var h1 = seed;\n for (seed = 0; seed < bytes; ) {\n var k1 =\n (key.charCodeAt(seed) & 255) |\n ((key.charCodeAt(++seed) & 255) << 8) |\n ((key.charCodeAt(++seed) & 255) << 16) |\n ((key.charCodeAt(++seed) & 255) << 24);\n ++seed;\n k1 =\n (3432918353 * (k1 & 65535) +\n (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &\n 4294967295;\n k1 = (k1 << 15) | (k1 >>> 17);\n k1 =\n (461845907 * (k1 & 65535) +\n (((461845907 * (k1 >>> 16)) & 65535) << 16)) &\n 4294967295;\n h1 ^= k1;\n h1 = (h1 << 13) | (h1 >>> 19);\n h1 =\n (5 * (h1 & 65535) + (((5 * (h1 >>> 16)) & 65535) << 16)) & 4294967295;\n h1 = (h1 & 65535) + 27492 + ((((h1 >>> 16) + 58964) & 65535) << 16);\n }\n k1 = 0;\n switch (remainder) {\n case 3:\n k1 ^= (key.charCodeAt(seed + 2) & 255) << 16;\n case 2:\n k1 ^= (key.charCodeAt(seed + 1) & 255) << 8;\n case 1:\n (k1 ^= key.charCodeAt(seed) & 255),\n (k1 =\n (3432918353 * (k1 & 65535) +\n (((3432918353 * (k1 >>> 16)) & 65535) << 16)) &\n 4294967295),\n (k1 = (k1 << 15) | (k1 >>> 17)),\n (h1 ^=\n (461845907 * (k1 & 65535) +\n (((461845907 * (k1 >>> 16)) & 65535) << 16)) &\n 4294967295);\n }\n h1 ^= key.length;\n h1 ^= h1 >>> 16;\n h1 =\n (2246822507 * (h1 & 65535) +\n (((2246822507 * (h1 >>> 16)) & 65535) << 16)) &\n 4294967295;\n h1 ^= h1 >>> 13;\n h1 =\n (3266489909 * (h1 & 65535) +\n (((3266489909 * (h1 >>> 16)) & 65535) << 16)) &\n 4294967295;\n return (h1 ^ (h1 >>> 16)) >>> 0;\n }\n function typeName(value) {\n return (\n (\"function\" === typeof Symbol &&\n Symbol.toStringTag &&\n value[Symbol.toStringTag]) ||\n value.constructor.name ||\n \"Object\"\n );\n }\n function willCoercionThrow(value) {\n try {\n return testStringCoercion(value), !1;\n } catch (e) {\n return !0;\n }\n }\n function testStringCoercion(value) {\n return \"\" + value;\n }\n function checkAttributeStringCoercion(value, attributeName) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"The provided `%s` attribute is an unsupported type %s. This value must be coerced to a string before using it here.\",\n attributeName,\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function checkCSSPropertyStringCoercion(value, propName) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"The provided `%s` CSS property is an unsupported type %s. This value must be coerced to a string before using it here.\",\n propName,\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function checkHtmlStringCoercion(value) {\n if (willCoercionThrow(value))\n return (\n console.error(\n \"The provided HTML markup uses a value of unsupported type %s. This value must be coerced to a string before using it here.\",\n typeName(value)\n ),\n testStringCoercion(value)\n );\n }\n function isAttributeNameSafe(attributeName) {\n if (hasOwnProperty.call(validatedAttributeNameCache, attributeName))\n return !0;\n if (hasOwnProperty.call(illegalAttributeNameCache, attributeName))\n return !1;\n if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName))\n return (validatedAttributeNameCache[attributeName] = !0);\n illegalAttributeNameCache[attributeName] = !0;\n console.error(\"Invalid attribute name: `%s`\", attributeName);\n return !1;\n }\n function checkControlledValueProps(tagName, props) {\n hasReadOnlyValue[props.type] ||\n props.onChange ||\n props.onInput ||\n props.readOnly ||\n props.disabled ||\n null == props.value ||\n (\"select\" === tagName\n ? console.error(\n \"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set `onChange`.\"\n )\n : console.error(\n \"You provided a `value` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultValue`. Otherwise, set either `onChange` or `readOnly`.\"\n ));\n props.onChange ||\n props.readOnly ||\n props.disabled ||\n null == props.checked ||\n console.error(\n \"You provided a `checked` prop to a form field without an `onChange` handler. This will render a read-only field. If the field should be mutable use `defaultChecked`. Otherwise, set either `onChange` or `readOnly`.\"\n );\n }\n function validateProperty$1(tagName, name) {\n if (\n hasOwnProperty.call(warnedProperties$1, name) &&\n warnedProperties$1[name]\n )\n return !0;\n if (rARIACamel$1.test(name)) {\n tagName = \"aria-\" + name.slice(4).toLowerCase();\n tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;\n if (null == tagName)\n return (\n console.error(\n \"Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.\",\n name\n ),\n (warnedProperties$1[name] = !0)\n );\n if (name !== tagName)\n return (\n console.error(\n \"Invalid ARIA attribute `%s`. Did you mean `%s`?\",\n name,\n tagName\n ),\n (warnedProperties$1[name] = !0)\n );\n }\n if (rARIA$1.test(name)) {\n tagName = name.toLowerCase();\n tagName = ariaProperties.hasOwnProperty(tagName) ? tagName : null;\n if (null == tagName) return (warnedProperties$1[name] = !0), !1;\n name !== tagName &&\n (console.error(\n \"Unknown ARIA attribute `%s`. Did you mean `%s`?\",\n name,\n tagName\n ),\n (warnedProperties$1[name] = !0));\n }\n return !0;\n }\n function validateProperties$2(type, props) {\n var invalidProps = [],\n key;\n for (key in props)\n validateProperty$1(type, key) || invalidProps.push(key);\n props = invalidProps\n .map(function (prop) {\n return \"`\" + prop + \"`\";\n })\n .join(\", \");\n 1 === invalidProps.length\n ? console.error(\n \"Invalid aria prop %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",\n props,\n type\n )\n : 1 < invalidProps.length &&\n console.error(\n \"Invalid aria props %s on <%s> tag. For details, see https://react.dev/link/invalid-aria-props\",\n props,\n type\n );\n }\n function validateProperty(tagName, name, value, eventRegistry) {\n if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name])\n return !0;\n var lowerCasedName = name.toLowerCase();\n if (\"onfocusin\" === lowerCasedName || \"onfocusout\" === lowerCasedName)\n return (\n console.error(\n \"React uses onFocus and onBlur instead of onFocusIn and onFocusOut. All React events are normalized to bubble, so onFocusIn and onFocusOut are not needed/supported by React.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\n \"function\" === typeof value &&\n ((\"form\" === tagName && \"action\" === name) ||\n (\"input\" === tagName && \"formAction\" === name) ||\n (\"button\" === tagName && \"formAction\" === name))\n )\n return !0;\n if (null != eventRegistry) {\n tagName = eventRegistry.possibleRegistrationNames;\n if (eventRegistry.registrationNameDependencies.hasOwnProperty(name))\n return !0;\n eventRegistry = tagName.hasOwnProperty(lowerCasedName)\n ? tagName[lowerCasedName]\n : null;\n if (null != eventRegistry)\n return (\n console.error(\n \"Invalid event handler property `%s`. Did you mean `%s`?\",\n name,\n eventRegistry\n ),\n (warnedProperties[name] = !0)\n );\n if (EVENT_NAME_REGEX.test(name))\n return (\n console.error(\n \"Unknown event handler property `%s`. It will be ignored.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n } else if (EVENT_NAME_REGEX.test(name))\n return (\n INVALID_EVENT_NAME_REGEX.test(name) &&\n console.error(\n \"Invalid event handler property `%s`. React events use the camelCase naming convention, for example `onClick`.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n if (rARIA.test(name) || rARIACamel.test(name)) return !0;\n if (\"innerhtml\" === lowerCasedName)\n return (\n console.error(\n \"Directly setting property `innerHTML` is not permitted. For more information, lookup documentation on `dangerouslySetInnerHTML`.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\"aria\" === lowerCasedName)\n return (\n console.error(\n \"The `aria` attribute is reserved for future use in React. Pass individual `aria-` attributes instead.\"\n ),\n (warnedProperties[name] = !0)\n );\n if (\n \"is\" === lowerCasedName &&\n null !== value &&\n void 0 !== value &&\n \"string\" !== typeof value\n )\n return (\n console.error(\n \"Received a `%s` for a string attribute `is`. If this is expected, cast the value to a string.\",\n typeof value\n ),\n (warnedProperties[name] = !0)\n );\n if (\"number\" === typeof value && isNaN(value))\n return (\n console.error(\n \"Received NaN for the `%s` attribute. If this is expected, cast the value to a string.\",\n name\n ),\n (warnedProperties[name] = !0)\n );\n if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {\n if (\n ((lowerCasedName = possibleStandardNames[lowerCasedName]),\n lowerCasedName !== name)\n )\n return (\n console.error(\n \"Invalid DOM property `%s`. Did you mean `%s`?\",\n name,\n lowerCasedName\n ),\n (warnedProperties[name] = !0)\n );\n } else if (name !== lowerCasedName)\n return (\n console.error(\n \"React does not recognize the `%s` prop on a DOM element. If you intentionally want it to appear in the DOM as a custom attribute, spell it as lowercase `%s` instead. If you accidentally passed it from a parent component, remove it from the DOM element.\",\n name,\n lowerCasedName\n ),\n (warnedProperties[name] = !0)\n );\n switch (name) {\n case \"dangerouslySetInnerHTML\":\n case \"children\":\n case \"style\":\n case \"suppressContentEditableWarning\":\n case \"suppressHydrationWarning\":\n case \"defaultValue\":\n case \"defaultChecked\":\n case \"innerHTML\":\n case \"ref\":\n return !0;\n case \"innerText\":\n case \"textContent\":\n return !0;\n }\n switch (typeof value) {\n case \"boolean\":\n switch (name) {\n case \"autoFocus\":\n case \"checked\":\n case \"multiple\":\n case \"muted\":\n case \"selected\":\n case \"contentEditable\":\n case \"spellCheck\":\n case \"draggable\":\n case \"value\":\n case \"autoReverse\":\n case \"externalResourcesRequired\":\n case \"focusable\":\n case \"preserveAlpha\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n case \"capture\":\n case \"download\":\n case \"inert\":\n return !0;\n default:\n lowerCasedName = name.toLowerCase().slice(0, 5);\n if (\"data-\" === lowerCasedName || \"aria-\" === lowerCasedName)\n return !0;\n value\n ? console.error(\n 'Received `%s` for a non-boolean attribute `%s`.\\n\\nIf you want to write it to the DOM, pass a string instead: %s=\"%s\" or %s={value.toString()}.',\n value,\n name,\n name,\n value,\n name\n )\n : console.error(\n 'Received `%s` for a non-boolean attribute `%s`.\\n\\nIf you want to write it to the DOM, pass a string instead: %s=\"%s\" or %s={value.toString()}.\\n\\nIf you used to conditionally omit it with %s={condition && value}, pass %s={condition ? value : undefined} instead.',\n value,\n name,\n name,\n value,\n name,\n name,\n name\n );\n return (warnedProperties[name] = !0);\n }\n case \"function\":\n case \"symbol\":\n return (warnedProperties[name] = !0), !1;\n case \"string\":\n if (\"false\" === value || \"true\" === value) {\n switch (name) {\n case \"checked\":\n case \"selected\":\n case \"multiple\":\n case \"muted\":\n case \"allowFullScreen\":\n case \"async\":\n case \"autoPlay\":\n case \"controls\":\n case \"default\":\n case \"defer\":\n case \"disabled\":\n case \"disablePictureInPicture\":\n case \"disableRemotePlayback\":\n case \"formNoValidate\":\n case \"hidden\":\n case \"loop\":\n case \"noModule\":\n case \"noValidate\":\n case \"open\":\n case \"playsInline\":\n case \"readOnly\":\n case \"required\":\n case \"reversed\":\n case \"scoped\":\n case \"seamless\":\n case \"itemScope\":\n case \"inert\":\n break;\n default:\n return !0;\n }\n console.error(\n \"Received the string `%s` for the boolean attribute `%s`. %s Did you mean %s={%s}?\",\n value,\n name,\n \"false\" === value\n ? \"The browser will interpret it as a truthy value.\"\n : 'Although this works, it will not work as expected if you pass the string \"false\".',\n name,\n value\n );\n warnedProperties[name] = !0;\n }\n }\n return !0;\n }\n function warnUnknownProperties(type, props, eventRegistry) {\n var unknownProps = [],\n key;\n for (key in props)\n validateProperty(type, key, props[key], eventRegistry) ||\n unknownProps.push(key);\n props = unknownProps\n .map(function (prop) {\n return \"`\" + prop + \"`\";\n })\n .join(\", \");\n 1 === unknownProps.length\n ? console.error(\n \"Invalid value for prop %s on <%s> tag. Either remove it from the element, or pass a string or number value to keep it in the DOM. For details, see https://react.dev/link/attribute-behavior \",\n props,\n type\n )\n : 1 < unknownProps.length &&\n console.error(\n \"Invalid values for props %s on <%s> tag. Either remove them from the element, or pass a string or number value to keep them in the DOM. For details, see https://react.dev/link/attribute-behavior \",\n props,\n type\n );\n }\n function camelize(string) {\n return string.replace(hyphenPattern, function (_, character) {\n return character.toUpperCase();\n });\n }\n function escapeTextForBrowser(text) {\n if (\n \"boolean\" === typeof text ||\n \"number\" === typeof text ||\n \"bigint\" === typeof text\n )\n return \"\" + text;\n checkHtmlStringCoercion(text);\n text = \"\" + text;\n var match = matchHtmlRegExp.exec(text);\n if (match) {\n var html = \"\",\n index,\n lastIndex = 0;\n for (index = match.index; index < text.length; index++) {\n switch (text.charCodeAt(index)) {\n case 34:\n match = \""\";\n break;\n case 38:\n match = \"&\";\n break;\n case 39:\n match = \"'\";\n break;\n case 60:\n match = \"<\";\n break;\n case 62:\n match = \">\";\n break;\n default:\n continue;\n }\n lastIndex !== index && (html += text.slice(lastIndex, index));\n lastIndex = index + 1;\n html += match;\n }\n text = lastIndex !== index ? html + text.slice(lastIndex, index) : html;\n }\n return text;\n }\n function sanitizeURL(url) {\n return isJavaScriptProtocol.test(\"\" + url)\n ? \"javascript:throw new Error('React has blocked a javascript: URL as a security precaution.')\"\n : url;\n }\n function escapeEntireInlineScriptContent(scriptText) {\n checkHtmlStringCoercion(scriptText);\n return (\"\" + scriptText).replace(scriptRegex, scriptReplacer);\n }\n function createResumableState(\n identifierPrefix,\n externalRuntimeConfig,\n bootstrapScriptContent,\n bootstrapScripts,\n bootstrapModules\n ) {\n return {\n idPrefix: void 0 === identifierPrefix ? \"\" : identifierPrefix,\n nextFormID: 0,\n streamingFormat: 0,\n bootstrapScriptContent: bootstrapScriptContent,\n bootstrapScripts: bootstrapScripts,\n bootstrapModules: bootstrapModules,\n instructions: NothingSent,\n hasBody: !1,\n hasHtml: !1,\n unknownResources: {},\n dnsResources: {},\n connectResources: { default: {}, anonymous: {}, credentials: {} },\n imageResources: {},\n styleResources: {},\n scriptResources: {},\n moduleUnknownResources: {},\n moduleScriptResources: {}\n };\n }\n function createFormatContext(\n insertionMode,\n selectedValue,\n tagScope,\n viewTransition\n ) {\n return {\n insertionMode: insertionMode,\n selectedValue: selectedValue,\n tagScope: tagScope,\n viewTransition: viewTransition\n };\n }\n function getChildFormatContext(parentContext, type, props) {\n var subtreeScope = parentContext.tagScope & -25;\n switch (type) {\n case \"noscript\":\n return createFormatContext(HTML_MODE, null, subtreeScope | 1, null);\n case \"select\":\n return createFormatContext(\n HTML_MODE,\n null != props.value ? props.value : props.defaultValue,\n subtreeScope,\n null\n );\n case \"svg\":\n return createFormatContext(SVG_MODE, null, subtreeScope, null);\n case \"picture\":\n return createFormatContext(HTML_MODE, null, subtreeScope | 2, null);\n case \"math\":\n return createFormatContext(MATHML_MODE, null, subtreeScope, null);\n case \"foreignObject\":\n return createFormatContext(HTML_MODE, null, subtreeScope, null);\n case \"table\":\n return createFormatContext(HTML_TABLE_MODE, null, subtreeScope, null);\n case \"thead\":\n case \"tbody\":\n case \"tfoot\":\n return createFormatContext(\n HTML_TABLE_BODY_MODE,\n null,\n subtreeScope,\n null\n );\n case \"colgroup\":\n return createFormatContext(\n HTML_COLGROUP_MODE,\n null,\n subtreeScope,\n null\n );\n case \"tr\":\n return createFormatContext(\n HTML_TABLE_ROW_MODE,\n null,\n subtreeScope,\n null\n );\n case \"head\":\n if (parentContext.insertionMode < HTML_MODE)\n return createFormatContext(\n HTML_HEAD_MODE,\n null,\n subtreeScope,\n null\n );\n break;\n case \"html\":\n if (parentContext.insertionMode === ROOT_HTML_MODE)\n return createFormatContext(\n HTML_HTML_MODE,\n null,\n subtreeScope,\n null\n );\n }\n return parentContext.insertionMode >= HTML_TABLE_MODE ||\n parentContext.insertionMode < HTML_MODE\n ? createFormatContext(HTML_MODE, null, subtreeScope, null)\n : parentContext.tagScope !== subtreeScope\n ? createFormatContext(\n parentContext.insertionMode,\n parentContext.selectedValue,\n subtreeScope,\n null\n )\n : parentContext;\n }\n function getSuspenseViewTransition(parentViewTransition) {\n return null === parentViewTransition\n ? null\n : {\n update: parentViewTransition.update,\n enter: \"none\",\n exit: \"none\",\n share: parentViewTransition.update,\n name: parentViewTransition.autoName,\n autoName: parentViewTransition.autoName,\n nameIdx: 0\n };\n }\n function getSuspenseFallbackFormatContext(resumableState, parentContext) {\n parentContext.tagScope & 32 && (resumableState.instructions |= 128);\n return createFormatContext(\n parentContext.insertionMode,\n parentContext.selectedValue,\n parentContext.tagScope | 12,\n getSuspenseViewTransition(parentContext.viewTransition)\n );\n }\n function getSuspenseContentFormatContext(resumableState, parentContext) {\n resumableState = getSuspenseViewTransition(parentContext.viewTransition);\n var subtreeScope = parentContext.tagScope | 16;\n null !== resumableState &&\n \"none\" !== resumableState.share &&\n (subtreeScope |= 64);\n return createFormatContext(\n parentContext.insertionMode,\n parentContext.selectedValue,\n subtreeScope,\n resumableState\n );\n }\n function pushStyleAttribute(target, style) {\n if (\"object\" !== typeof style)\n throw Error(\n \"The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + 'em'}} when using JSX.\"\n );\n var isFirst = !0,\n styleName;\n for (styleName in style)\n if (hasOwnProperty.call(style, styleName)) {\n var styleValue = style[styleName];\n if (\n null != styleValue &&\n \"boolean\" !== typeof styleValue &&\n \"\" !== styleValue\n ) {\n if (0 === styleName.indexOf(\"--\")) {\n var nameChunk = escapeTextForBrowser(styleName);\n checkCSSPropertyStringCoercion(styleValue, styleName);\n styleValue = escapeTextForBrowser((\"\" + styleValue).trim());\n } else {\n nameChunk = styleName;\n var value = styleValue;\n if (-1 < nameChunk.indexOf(\"-\")) {\n var name = nameChunk;\n (warnedStyleNames.hasOwnProperty(name) &&\n warnedStyleNames[name]) ||\n ((warnedStyleNames[name] = !0),\n console.error(\n \"Unsupported style property %s. Did you mean %s?\",\n name,\n camelize(name.replace(msPattern$1, \"ms-\"))\n ));\n } else if (badVendoredStyleNamePattern.test(nameChunk))\n (name = nameChunk),\n (warnedStyleNames.hasOwnProperty(name) &&\n warnedStyleNames[name]) ||\n ((warnedStyleNames[name] = !0),\n console.error(\n \"Unsupported vendor-prefixed style property %s. Did you mean %s?\",\n name,\n name.charAt(0).toUpperCase() + name.slice(1)\n ));\n else if (badStyleValueWithSemicolonPattern.test(value)) {\n name = nameChunk;\n var value$jscomp$0 = value;\n (warnedStyleValues.hasOwnProperty(value$jscomp$0) &&\n warnedStyleValues[value$jscomp$0]) ||\n ((warnedStyleValues[value$jscomp$0] = !0),\n console.error(\n 'Style property values shouldn\\'t contain a semicolon. Try \"%s: %s\" instead.',\n name,\n value$jscomp$0.replace(\n badStyleValueWithSemicolonPattern,\n \"\"\n )\n ));\n }\n \"number\" === typeof value &&\n (isNaN(value)\n ? warnedForNaNValue ||\n ((warnedForNaNValue = !0),\n console.error(\n \"`NaN` is an invalid value for the `%s` css style property.\",\n nameChunk\n ))\n : isFinite(value) ||\n warnedForInfinityValue ||\n ((warnedForInfinityValue = !0),\n console.error(\n \"`Infinity` is an invalid value for the `%s` css style property.\",\n nameChunk\n )));\n nameChunk = styleName;\n value = styleNameCache.get(nameChunk);\n void 0 !== value\n ? (nameChunk = value)\n : ((value = escapeTextForBrowser(\n nameChunk\n .replace(uppercasePattern, \"-$1\")\n .toLowerCase()\n .replace(msPattern, \"-ms-\")\n )),\n styleNameCache.set(nameChunk, value),\n (nameChunk = value));\n \"number\" === typeof styleValue\n ? (styleValue =\n 0 === styleValue || unitlessNumbers.has(styleName)\n ? \"\" + styleValue\n : styleValue + \"px\")\n : (checkCSSPropertyStringCoercion(styleValue, styleName),\n (styleValue = escapeTextForBrowser(\n (\"\" + styleValue).trim()\n )));\n }\n isFirst\n ? ((isFirst = !1),\n target.push(\n styleAttributeStart,\n nameChunk,\n styleAssign,\n styleValue\n ))\n : target.push(styleSeparator, nameChunk, styleAssign, styleValue);\n }\n }\n isFirst || target.push(attributeEnd);\n }\n function pushBooleanAttribute(target, name, value) {\n value &&\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n target.push(attributeSeparator, name, attributeEmptyString);\n }\n function pushStringAttribute(target, name, value) {\n \"function\" !== typeof value &&\n \"symbol\" !== typeof value &&\n \"boolean\" !== typeof value &&\n target.push(\n attributeSeparator,\n name,\n attributeAssign,\n escapeTextForBrowser(value),\n attributeEnd\n );\n }\n function pushAdditionalFormField(value, key) {\n this.push(' must be an array if `multiple` is true.\",\n propName\n )\n : !props.multiple &&\n value &&\n console.error(\n \"The `%s` prop supplied to instead of setting `selected` on